8
  1. 这两个代码片段做相同的事情吗?如果是,什么时候应该使用一个而不是另一个?(除了当你需要做一些涉及i或的事情时value

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

    对比

    $("foo").empty();
    
  2. 通常可以假设这$("foo").someMethod()意味着“在与选择器匹配的每个元素上运行somemethod()除非方法的名称是each?(即每个都是特殊情况)

4

2 回答 2

4

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

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

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

于 2012-10-16T13:02:24.963 回答
3

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

看代码示例:

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

所以即使你可以.each再次使用,你也应该使用:

$(selector).someMethod();

不是

$(selector).each(function() {
  $(this).someMethod();
});
于 2012-10-16T13:08:01.683 回答