在jQuery中,这些$ .each声明之间的区别是什么?

时间:2014-03-07 08:13:43

标签: jquery

我之前使用过这两种方式,但我不确定它们的区别。有人可以解释这些差异吗?

1. $(myObjects).each(function(){}};

2. $.each($(myObjects), function(){});

3 个答案:

答案 0 :(得分:2)

jQuery Object Iterator

$('.myClass, .anotherClass').each(function(){}};

这是从你的选择器循环遍历每个jquery元素。

  

来自文档:

     

迭代jQuery对象,为每个匹配的元素执行一个函数。   $ .each()函数与$(selector).each()不同,后者用于独占于jQuery对象进行迭代。

.each() docs


通用迭代器

var arr = [1,2,3,4];
$.each(arr, function(index, value){});

这是循环数组或对象的实用工具方法。

  

来自文档:

     

通用迭代器函数,可用于无缝迭代对象和数组。具有length属性的数组和类似数组的对象(例如函数的参数对象)由数字索引迭代,从0到length-1。其他对象通过其命名属性进行迭代。

$.each() docs


差:

您可以使用:$ .each()和.each()循环遍历jQuery对象列表。

// Can be used to iterate any list or object
var $selectedElements = $('.tabs');
$.each($selectedElements, function(index, value){
    $(this).html(index);
});

// Can only be used for iterating a list of jquery objects, 
//  and is the recommended way of doing it.
$selectedElements.each(function(index, element){
    $(this).html(index);

});

但你不能使用.each()循环对象或列表

// YOU CANNOT DO THIS
var list = [1,2,3];
list.each(function(){

});

答案 1 :(得分:1)

来自 docs

  

$ .each()函数与.each()不同,后者是用来做的   通过jQuery对象专门迭代。 $ .each()函数可以   用于迭代任何集合,无论它是否为地图   (JavaScript对象)或数组。

答案 2 :(得分:1)

.each是一个迭代器,用于迭代jQuery对象集合,而jQuery.each($ .each)是迭代javascript对象和数组的通用函数。