jQuery Each()作为For语句?

时间:2011-08-14 12:25:55

标签: jquery for-loop each

我有一个jQuery.each()函数,我想把它变成FOR语句。

我想知道如何转

     jQuery('.myclass').each(function() {
       //do stuff
     }

进入

   for ( var i=0; i<.myclass.length; i++) {
    //do stuff
   }

2 个答案:

答案 0 :(得分:5)

jQuery对象是类似数组的。它们具有length属性,并且它们支持使用带有[]的数字索引来访问元素。所以你只需直接索引到结果对象:

var myclass = jQuery('.myclass');

for ( var i=0; i<myclass.length; i++) {
    // use myclass[i] here
}

这些信息在API文档中没有特别标记,但您可以在get function的文档中找到它。括号表示法在很大程度上取代了get函数的使用,除了它处理负索引值(用于相对于集合的结尾进行索引;负索引仅通过get支持,而不是通过[])。

答案 1 :(得分:3)

您可以使用.get()获取标准JavaScript数组。然后以正常方式使用for循环。

var nodes = $(...).get(),
    nodes_len = nodes.length;

for(var i=0; i < nodes_len; i++) {
   var node = nodes[i];

   ...
}

或者,如果您只需要索引编号,请使用以下命令:

$(...).each(function (index) {
   ... 
});