如何将jQuery each()转换为常规的javascript循环

Han*_*com 11 javascript jquery loops

几个问题:

  1. 是一个常规的javascript循环(循环一系列元素)比使用jQuery更快/更高效each()

  2. 如果是这样,将以下代码编写为常规javascript循环的最佳方法是什么?

$('div').each(function(){ //... })

Gab*_*abe 14

是的,删除each()将会给你稍微好一点的性能.这就是为元素列表编写for循环的方法.

var divs = $('div');

for(var i = 0; i < divs.length; i++){
    var thisDiv = divs[i]; // element

    var $thisDiv = $(divs[i]); // jquery object

    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

  • `divs [i]`不是jquery对象.你必须要`$(divs [i])` (2认同)

Nie*_*sol 5

var divs = document.getElementsByTagName('div'),
    l = divs.length, i, cur;

for(i=0; i<l; i++) {
    cur = divs[i];
    // do stuff with cur here
}
Run Code Online (Sandbox Code Playgroud)

请继续按照效率的名义删除jQuery.此代码比jQuery等效快约五十倍.

  • 如果你没有"在这里做什么"这一部分,那么它只会快50倍.它更快,但50x在宏观计划中具有误导性. (5认同)