jquery选择器循环vs每个使用函数

时间:2012-10-16 12:58:18

标签: jquery

  1. 这两段代码是否完全相同?如果是的话,何时应该使用另一个? (此外,当您需要执行涉及ivalue

    的操作时
    $("foo").each(function(i,value) {
        $(this).empty();
    });
    

    VS

    $("foo").empty();
    
  2. 通常可以假设$("foo").someMethod()表示“匹配选择器的每个元素上的运行somemethod(),除非方法的名称为{ {1}}?(即每个都是特例)

2 个答案:

答案 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();
});