$ .each(selector)和$(selector).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" class="chkDeleteItem" name="deleteItem[]" value="' . $rowItem['itemID'] . '" /></td>
我已经浏览了jQuery文档,但我仍然不明白其中的差别。 (对我来说,还是说文档在内容清晰度上有时会略微“模糊”?)
补充信息:
显然我的尝试一个通用的例子是混淆的人! 与第一个例子中(先前)缺失的括号一起。 🙁
第一个例子来自于我的代码中的一行,它删除了选中checkbox的任何行的<tbody>:
$.each($('#classesTable input[name="deleteClasses[]"]:checked').parent().parent().parent().remove());
第二个例子来自于我查看#classesTable中任何选中的checkbox并在下拉列表中删除它的匹配项的情况。
$('#classesTable input[name="deleteClasses[]"]:checked').each(function(){ $('#classesList option[value="' + $(this).attr('value') + '"]').remove(); });
我明白,他们做了两件不同的事情,但不是我可以说“我需要在这种情况下使用$ .each()和.each(function(){})在另一种情况下。
它们可以互换吗? 只有在某些情况下? 决不?
描述:
.each
是一个用于遍历jQuery对象集合的迭代器,而jQuery.each
($.each
)是一个用于遍历javascript对象和数组的迭代器。
例子:
使用$ .each()的Javascript数组(或js对象):
var myArray = [10,20,30]; jQuery.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
使用.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
如果你正在寻找更多的例子+细节, $ .each vs .each()
资源
-
jQuery.each
($.each
)doc: https :$.each
-
.each
文档: http :.each
- jQuery循环通过具有相同类的元素
来自http://api.jquery.com/jQuery.each :
$ .each()函数与.each()函数不同,它用于遍历一个jQuery对象。 $ .each()函数可以用来遍历任何集合,不pipe它是一个映射(JavaScript对象)还是一个数组。
你想真的使用$.each
与不是元素或东西的数组。 即:
var x = ["test", "test2"];
你会使用$.each(x...
来遍历,而不是x.each
🙂
.each
仅适用于元素:)
没有function差异。 每个jQuery对象都拥有一个从jQuery.fn
inheritance的.each()
方法。 通过调用这个object method
,jQuery已经知道要迭代哪个Array (-like object)
。 换句话说,它循环遍历来自当前jQuery对象的indexed propertys
。
$.each()
另一方面只是一个“辅助工具”,可以循环使用任何types的Array
或Object
,但是当然,您必须告诉该方法您要迭代哪个目标。
它也会照顾你是否传入一个数组或对象,它使用一个for-in
或for loop
的引擎来做正确的事情。
第一个会对你传入的集合中的元素运行callback函数,但是你的代码目前在语法上是不正确的。
它应该是:
$.each($('#myTable input[name="deleteItem[]"]:checked'), do_something);
请参阅: http : //api.jquery.com/jQuery.each/
第二个将在你正在运行的集合的每个元素上运行该函数。
请参阅: http : //api.jquery.com/each/
在第一种情况下,您可以遍历jQuery对象以及其他数组项,如下所示:
jQuery.each()
在第二种情况下,您只能按照以下指示的方式遍历jQuery对象:
。每()
从我理解的$.each();
循环通过一个对象或数组,并为您提供每个项目的迭代器和值。
$().each();
循环遍历一个jQuery对象列表,并为您提供迭代器和jQuery对象。
取自http://api.jquery.com/jQuery.each/
$.each()
函数与$.each()
函数不同,它用于遍历一个jQuery对象。$.each()
函数可以用来遍历任何集合,不pipe它是一个映射(JavaScript对象)还是一个数组。 在数组的情况下,每次callback都会传递一个数组索引和相应的数组值。 (该值也可以通过this关键字来访问,但是Javascript总是将这个值作为一个对象来包装,即使它是一个简单的string或数字值。)该方法返回它的第一个参数,即被迭代的对象。