就像是

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]);

08-19 09:01