javascript - 遍历 jQuery 返回的 DOM 节点的最快方法

标签 javascript jquery loops dom nodes

我在使用 jsperf 时得到了一个非常有趣但绝对合乎逻辑的结果。

http://jsperf.com/for-in-jquery-return-value-vs-jquery-each

准备环境中,O为200个DOM节点的jQuery返回值,a为空数组,

O.each(function() {
  a[a.length] = $(this).text();
});

比这个“纯”片段慢很多

for (i = 0; i < O.length; i++) {
  a[a.length] = O[i].text();
}

(不同之处请查看上面的链接)

考虑到我只是玩得开心,必须有更快的方法。 使用 jQuery 遍历 DOM 元素的最快方法是什么?

最佳答案

又进行了一次测试,看来是

http://jsperf.com/for-in-jquery-return-value-vs-jquery-each/2

for (i = 0; i < O.length; i++) {
  a[a.length] = O[i].text(); // tested this, because this is the usual way i work with pushing item to array
}

甚至比-

还快
for (i = 0; i < O.length; i++) {
  a.push($(O[i]).text());
}

我猜 push 本身比较慢,或者删除额外的 $(..) 会减少一些开销。

编辑:

enter image description here

关于javascript - 遍历 jQuery 返回的 DOM 节点的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24548993/

相关文章:

java - Java 上 0.1 到 2 的奇怪循环

C# 循环/迭代对象以获取具有复杂属性类型的属性值

javascript - 在图片上添加悬停效果

javascript - 如何从 WordPress 页面引用外部链接

javascript - json 在 stringify 期间不包含对象名称

javascript - 如何从 JavaScript 函数返回 promise ?

python - 创建类实例并将其排列到网格中

javascript - 通过 Jquery 围绕特定内容注入(inject)代码

javascript - 常用表达

jquery - UI 对话框上的自动高度,如果高度更改,对话框将不再垂直居中