1

http://jsfiddle.net/6x2Nb/

你好,它来自 jQuery 文档的简单示例,我想知道为什么会有

  $(document.body).click(function () {
      $( "div" ).each(function (i) {
        if ( this.style.color != "blue" ) {
          this.style.color = "blue";
        } else {
          this.style.color = "";
        }
      });
    });

为什么有函数(i)?它等同于 function() 并且在执行时没有区别。谢谢

4

2 回答 2

5

接受一个带有 2 个参数的$.each函数:索引和当前元素。但也是this指向当前元素。所以这也可以写成:

$("div").each(function (index, element) {
    if (element.style.color != "blue") {
        element.style.color = "blue";
    } else {
        element.style.color = "";
    }
});

由于在此示例中未使用参数,因此您可以省略它们。Javascript 允许您这样做。

所以基本上如果你不需要函数内部的索引,那么写起来会更短:

$("div").each(function () {
    if (this.style.color != "blue") {
        this.style.color = "blue";
    } else {
        this.style.color = "";
    }
});
于 2013-04-04T06:56:14.167 回答
2

i是您正在循环遍历的对象的索引...$.each有两个可选参数索引和值。在您的情况下,您正在分配可选参数但不使用它..因为this也指向当前循环元素..您可以省略i

$( "div" ).each(function () {
   ... 

和代码将工作..

于 2013-04-04T06:56:42.367 回答