Jquery $.each(选择器)和$(选择器).each()之间的区别是什么

Jquery $.each(选择器)和$(选择器).each()之间的区别是什么,jquery,each,Jquery,Each,这两者之间的区别是什么: $.each($('#myTable input[name="deleteItem[]"]:checked').do_something()); 这是: $('#myTable input[name="deleteItem[]"]:checked').each(function() { do_something }); 正在选择并执行操作的表格单元格的html如下所示: <td width="20px"><input type="checkbox"

这两者之间的区别是什么:

$.each($('#myTable input[name="deleteItem[]"]:checked').do_something());
这是:

$('#myTable input[name="deleteItem[]"]:checked').each(function() { do_something });
正在选择并执行操作的表格单元格的html如下所示:

<td width="20px"><input type="checkbox" class="chkDeleteItem" name="deleteItem[]" value="' . $rowItem['itemID'] . '" /></td>
第二个例子来自这样一种情况:我在#classesTable中查找任何选中的复选框,并在下拉列表中删除其匹配项

$('#classesTable input[name="deleteClasses[]"]:checked').each(function(){
    $('#classesList option[value="' + $(this).attr('value') + '"]').remove();
});
我知道他们做了两件不同的事情,但我不能说“我需要在这种情况下使用$.each(),在另一种情况下使用.each(function(){})”


它们是否可以互换?仅在某些情况下?永远不会?

您希望真正使用
$。每个
都与非元素或其他内容的数组一起使用。例如:

var x = ["test", "test2"];
您可以使用
$.each(x…
来遍历该对象,而不是
x.each
:)


。每个
仅适用于元素:)

第一个将对传入的集合中的元素运行回调函数,但此时代码的语法不正确

应该是:

$.each($('#myTable input[name="deleteItem[]"]:checked'), do_something);
见:

第二个函数将在运行该函数的集合的每个元素上运行该函数

请参阅:

摘自

$。each()
函数与用于以独占方式迭代jQuery对象的
.each()
函数不同。
$。each()
函数可用于迭代任何集合,无论它是映射(JavaScript对象)或者数组。对于数组,回调每次都会传递一个数组索引和相应的数组值。(也可以通过this关键字访问该值,但Javascript将始终将this值包装为对象,即使它是一个简单的字符串或数字值。)该方法返回其第一个参数,即迭代的对象


说明:

。每个
都是一个迭代器,仅用于迭代jQuery 对象集合,而
jQuery.each
$。each
)是常规 用于迭代JavaScript对象和数组的函数


例子 1) 使用
$.each()
函数 2) 使用
.each()
方法
资源

没有功能上的区别。每个jQuery对象都拥有一个
。each()
方法继承自
jQuery.fn
。通过调用此
对象方法,jQuery已经知道哪个
数组(-like对象)
进行迭代。换句话说,它在当前jQuery对象的
索引属性上循环

$。另一方面,each()
只是一个“助手工具”,它可以在任何类型的
数组
对象
上循环,但当然,您必须告诉该方法您要迭代哪个目标。
无论您是通过数组还是对象,它都会为您提供服务。它在引擎盖下使用
for in
for loop
来执行正确的操作。

来自:

$.each()函数不同 as.each(),用于迭代, 独占地,通过jQuery对象 $。每个()函数可用于 迭代任何集合,无论 它是一个映射(JavaScript对象)或 数组


在第一种情况下,您可以迭代jQuery对象和其他数组项,如下所示:

在第二种情况下,您只能对jQuery对象执行以下操作:


据我所知,
$。each();
循环遍历对象或数组,并为您提供每个项的迭代器和值


$()。每个();
循环查看jQuery对象列表,并给出迭代器和jQuery对象。

您的第一个代码示例缺少一个结束括号。注释和逗号,请参见我的答案以获取示例。第一个示例的意图可以用几种不同的方式解释。请更正它以反映您的实际操作。我添加了在分号之前的行尾缺少右括号。您正在调用
do\u something
而不是传递它。这是不正确的,除非
do\u something
碰巧返回一个函数。
$.each($('#myTable input[name="deleteItem[]"]:checked'), do_something);
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
$('#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