有点像
for (var k = 0; k < $('#somediv > p').length; ++k)
console.log($('#somediv > p:nth-of-type(' + k.toString() + ')');
不可能高效,因为 p
元素被多次迭代。执行上述操作最有效的方法是什么?
最佳答案
- 将
$('#somediv > p')
存储在一个变量中,而不是在每次循环时重复选择 - 不要在迭代中使用
:nth-of-type( k )
。只需一次选择所有这些,然后迭代您得到的集合。
总而言之:$('#somediv > p')
确实已经为您提供了您想要的结果。只需使用 jQuery 惯用的 each
method 遍历它- 一个普通的 js 循环会更快,但这可以忽略不计。
$('#somediv > p').each(function() {
console.log($(this));
});
当然,如果您追求原始速度,则根本不要使用 jQuery。可能是这样的
var els = document.getElementById("somediv").children;
for (var i=0, l=els.length; i<l; i++)
if (els[i].tagName == "P")
console.log(els[i]);
关于javascript - 使用 Javascript 遍历 sibling 的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28782795/