jQuery每个元素

jQuery每个元素,jquery,Jquery,我很好奇为什么这个代码是无效的: $.each( $("p") ).css("color", "green"); 虽然此代码工作正常: $.each($("p"), function() { $(this).css("color", "green") }); 无法将元素与每个元素链接起来吗?$。每个都需要两个参数,第二个参数是对每个元素执行一次的回调。如果不传递回调参数,$。每个都不起作用 另外,$。每个都返回它所迭代的对象,因此链接与返回jQuery对象的方法不同。删除包装器: $("

我很好奇为什么这个代码是无效的:

$.each( $("p") ).css("color", "green");

虽然此代码工作正常:

$.each($("p"), function() { $(this).css("color", "green") });


无法将元素与每个元素链接起来吗?

$。每个
都需要两个参数,第二个参数是对每个元素执行一次的回调。如果不传递回调参数,
$。每个
都不起作用

另外,
$。每个
都返回它所迭代的对象,因此链接与返回jQuery对象的方法不同。

删除包装器:

$("p").css("color", "green");
如果要使用
$。每个
,请指定一个函数作为第二个参数:

$("p").each(function() {
//Or: $.each( $("p"), function() {
   $(this).css("color", "green");
});
jQuery方法自动返回集合的一个实例,因此仍然可以进行链接

演示:

另见:

  • jQuery文档-
  • jQuery文档-
$。each()
需要一个函数作为第二个参数。你只通过了一次辩论

each(集合、回调(indexInArray、valueOfElement)) 集合要迭代的对象或数组

回调(indexInArray,valueOfElement)将在每个对象上执行的函数


是的,可以链接,因为
$。每个
返回您正在迭代的集合

$.each($("p"), function() { $(this).css("color", "green") }).addClass('test');

请注意,每个
不需要任何版本的
,就可以达到(最有可能的)预期效果

$("p").css("color", "green");

做这项工作。

你能举一个链接每个的例子吗?@Toast:更新了一个例子。@Toast。我希望你是对的,但我的回答是错的。请参阅jsfiddle应该注意的是
$。每个
用于
HTMLCollections
和其他本机JavaScript集合,而jQuery方法
$('.selector')。每个()
用于jQuery对象。不,不可能这样。以下是关于这一点的现有SO讨论: