jQuery选择器循环与使用函数


  1. 这两个代码片段是否执行相同的操作? 如果是,什么时候应该使用一个而不是另一个?(除了当你需要做一些涉及ivalue的事情时)

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

    与。

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

假设你指的是股票jQuery函数,是的,两个代码片段是相同的。

当您

想要使用索引或防止长函数链接时,应使用 each() 函数。

你对$('foo').someMethod()的理解也适用于jQuery方法。但请注意,某些插件可能会以不同的方式处理选择器,或者仅影响第一个匹配的元素。

是的,大多数jQuery函数都是这样设计的。

看代码示例:

$.fn.someMethod = function() {
   return this.each(function() {
      do_something(this); 
   });
};

因此,即使您可以再次使用.each,也应该只使用:

$(selector).someMethod();

$(selector).each(function() {
  $(this).someMethod();
});

最新更新