就像是
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]);