```在`.each(function(i){})中的作用是什么?

Fil*_*uzi 1 javascript css api jquery

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 = "";
        }
      });
    });
Run Code Online (Sandbox Code Playgroud)

为什么有功能(i)?它等于函数(),并且在执行时没有任何差别.谢谢

Dar*_*rov 5

在$.each采用以2个参数的函数:所述索引和所述当前元素.但也this指向当前的元素.所以这也可以写成:

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

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

所以基本上如果你不需要函数内部的索引,它只需更短的时间来编写:

$("div").each(function () {
    if (this.style.color != "blue") {
        this.style.color = "blue";
    } else {
        this.style.color = "";
    }
});
Run Code Online (Sandbox Code Playgroud)