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