循环通过jQuery返回的DOM节点的最快方法

时间:2014-07-03 08:44:26

标签: javascript jquery loops dom nodes

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

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

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

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

比这更慢"纯粹"段

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

(差异,请查看上面的链接)

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

1 个答案:

答案 0 :(得分:2)

进行了另一次测试,似乎是

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