jQuery每个元素

时间:2012-01-25 20:05:27

标签: jquery

我很好奇为什么这段代码无效:

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


虽然这段代码工作正常:

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


是不是可以用每个链接元素?

4 个答案:

答案 0 :(得分:35)

删除包装器:

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

如果要使用$.each,请将函数指定为第二个参数:

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

jQuery方法自动返回集合的实例,因此仍然可以进行链接。

演示:http://jsfiddle.net/pC2Bj/

另见:

答案 1 :(得分:9)

$.each()需要一个函数作为第二个参数。你只传了一个论点。

http://api.jquery.com/jquery.each/

  

jQuery.each(集合,回调(indexInArray,valueOfElement))

     

集合要迭代的对象或数组。

     

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


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

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

答案 2 :(得分:1)

$.each需要两个参数,第二个是对每个元素执行一次的回调。如果您未通过回调参数,则$.each无法正常工作。

此外,$.each返回它迭代的对象,因此链接不会像返回jQuery对象的方法那样工作。

答案 3 :(得分:0)

请注意,不需要each版本来实现(最可能)期望的效果。

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

完成这项工作。