$ .each(selector)和$(selector).each()之间有什么区别

mar*_*rky 79 each jquery

这有什么区别:

$.each($('#myTable input[name="deleteItem[]"]:checked').do_something());
Run Code Online (Sandbox Code Playgroud)

还有这个:

$('#myTable input[name="deleteItem[]"]:checked').each(function() { do_something });
Run Code Online (Sandbox Code Playgroud)

正在选择和执行的表格单元格的html如下所示:

<td width="20px"><input type="checkbox" class="chkDeleteItem" name="deleteItem[]" value="' . $rowItem['itemID'] . '" /></td>
Run Code Online (Sandbox Code Playgroud)

我已经浏览了jQuery文档,但我仍然不明白其中的区别.(这是我还是文件有时在内容的清晰度上略显"模糊"?)

添加信息:

显然,我的尝试是一个通用的例子让人困惑!与第一个示例中的(先前)缺少的括号一起.:(

第一个示例来自我的代码中的一行,它删除了任何行的<tbody>并选中了一个复选框:

$.each($('#classesTable input[name="deleteClasses[]"]:checked').parent().parent().parent().remove());
Run Code Online (Sandbox Code Playgroud)

第二个示例来自于我查看#classesTable以查看任何已选中复选框并在下拉列表中删除其匹配项的情况.

$('#classesTable input[name="deleteClasses[]"]:checked').each(function(){
    $('#classesList option[value="' + $(this).attr('value') + '"]').remove();
});
Run Code Online (Sandbox Code Playgroud)

我知道他们做了两件不同的事情,但是我不能说"我需要在这种情况下使用$ .each()而在另一种情况下需要使用.each(function(){}).

它们可以互换吗?仅在某些情况下?决不?

Phi*_*hil 101

描述:

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

例子:

使用$ .each()的Javascript数组(或js对象):

var myArray = [10,20,30];

$.each( myArray, function(index, value) {
   console.log('element at index ' + index + ' is ' + value);
});

//Output
element at index 0 is 10
element at index 1 is 20
element at index 2 is 30
Run Code Online (Sandbox Code Playgroud)

使用.each()的jQuery对象

$('#dv').children().each(function(index, element) {
    console.log('element at index ' + index + 'is ' + (this.tagName));
    console.log('current element as dom object:' + element);
    console.log('current element as jQuery object:' + $(this));
});

//Output
element at index 0 is input
element at index 1 is p
element at index 2 is span
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找更多示例+详细信息, $ .each vs .each()

资源


tig*_*tig 5

来自http://api.jquery.com/jQuery.each:

$ .each()函数与.each()不同,后者用于独占于jQuery对象进行迭代.$ .each()函数可用于迭代任何集合,无论它是地图(JavaScript对象)还是数组.