javascript - 使用 Javascript 遍历 sibling 的最快方法是什么?

标签 javascript jquery dom

有点像

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/

相关文章:

javascript - 添加类来 react div onClick

javascript - 如何使用 Angular 包含文件中的 $scope 值

javascript - 加载 JQuery 后加载 JS

javascript - 使用 for 循环访问和操作 DOM

java - 使用 dom 解析器 api 在 Java 中覆盖现有 XML 文档

java - 从单个 DOM 元素获取原始 xml 代码

javascript - 无法理解 memoize 实现

javascript - Node mysql连接超时

javascript - Three.js-如何限制 3D 场景中的摄像机 View ?

javascript - 如何缓存使用脚本标签下载的已下载 javascript 文件