jQuery's next()的原生JavaScript替代方案
Native JavaScript alternative for jQuery's next()
我有这样的代码:
$.each(this.items, function(key, item) {
item = $(item);
item.css('background', 'red');
item.next().css('display', 'none');
}
现在,我需要用纯JavaScript重写它所以我在这里写
document.getElementById(aItems[iCount].id).style.background = 'red';
document.getElementById(aItems[iCount].id).style.display = 'none';
问题是display:none
必须为next()
项设置,而不是这个,我该怎么做?
谢谢。
试试这个:
item.nextSibling.style.display = 'none'
请记住,nextSibling
可能会选择元素旁边的文本内容,所以您可能需要使用:
item.nextSibling.nextSibling.style.display = 'none'
另一种选择是使用nextElementSibling
,正如Bergi建议的那样。然而,并不是所有的浏览器都支持这个功能。不过,您可以自己创建这个函数:
function nextElementSibling(element) {
do {
element = element.nextSibling;
} while (element && element.nodeType !== 1);
return element;
}
在本例中:
nextElementSibling(item).style.display = 'none';
最后但并非最不重要的是,如果你想用原生JS代替jQuery的$.each()
,我建议看看Palash的答案。
您可以使用所选DOM节点的nextElementSibling
属性:
var item = document.getElementById(aItems[iCount].id);
item.style.background = 'red';
item.style.display = 'none';
if (item.nextElementSibling)
item.nextElementSibling.style.display = 'none';
你也可以试试这个:
for(var iCount = 0; iCount < aItems.length;i++)
{
var current = aItems[iCount].id;
var next = aItems[iCount + 1].id;
if ( next != null ) {
document.getElementById(current).style.background = 'red';
document.getElementById(next).style.display = 'none';
}
}
相关文章:
- jQuery $.data() 函数的香草替代品:任何原生 JavaScript 替代品
- 使用原生 JavaScript 防止轮播中的气泡
- 如何在原生 JavaScript Promise 中包装 jsonP 回调
- 在原生JavaScript中获取画布中鼠标位置的最现代方法
- 在原生 Javascript 中查找带有类的元素的索引
- 原生 JavaScript JSON.parse 抛出 typeError
- 原生 JavaScript 在调整大小后获取浏览器宽度,然后运行一个函数
- 使用原生 JavaScript 在过渡中获取 CSS 值
- 如何从 React 原生 JavaScript 语法切换到 ES6
- 在原生 JavaScript 中移动棋子
- j查询 |从jQuery到原生javascript
- 原生 JavaScript 函数是否类似于“超全局”?
- 什么是原生JavaScript语法中的$httpProvider.defaults.headers.common
- jQuery在纯原生javascript中的“on”和“off”
- 使用SeleniumWebDriver和原生javascript来衡量性能
- 浏览器对“数字集市”/“伪造”的支持程度如何?lib(原生JavaScript TLS实现)
- 原生javascript中的ISO日期比较
- 原生javascript点击dom元素
- 如何将jquery ajax转换为原生javascript
- 为什么UnderscoreJS有很多原生Javascript函数的包装函数?