这两段代码是否完全相同?如果是的话,何时应该使用另一个? (此外,当您需要执行涉及i
或value
)
$("foo").each(function(i,value) {
$(this).empty();
});
VS
$("foo").empty();
通常可以假设$("foo").someMethod()
表示“匹配选择器的每个元素上的运行somemethod()
,除非方法的名称为{ {1}}?(即每个都是特例)
答案 0 :(得分:4)
假设您指的是股票jQuery函数,是的,两个代码片段是相同的。
当您想使用索引时,或者为了防止长时间的函数链,您应该使用each()
函数。
您对$('foo').someMethod()
的理解适用于jQuery方法。但要注意,一些插件可能以不同的方式处理选择器,或者仅影响第一个匹配的元素。
答案 1 :(得分:3)
是的,大多数jQuery函数都是这样设计的。
查看代码示例:
$.fn.someMethod = function() {
return this.each(function() {
do_something(this);
});
};
所以,即使您可以再次使用.each
,也应该使用:
$(selector).someMethod();
不
$(selector).each(function() {
$(this).someMethod();
});