我很好奇为什么这段代码无效:
$.each( $("p") ).css("color", "green");
虽然这段代码工作正常:
$.each($("p"), function() { $(this).css("color", "green") });
是不是可以用每个链接元素?
答案 0 :(得分:35)
删除包装器:
$("p").css("color", "green");
如果要使用$.each
,请将函数指定为第二个参数:
$("p").each(function() {
//Or: $.each( $("p"), function() {
$(this).css("color", "green");
});
jQuery方法自动返回集合的实例,因此仍然可以进行链接。
另见:
$().each()
$.each
答案 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");
完成这项工作。