你好,它是来自jQuery文档的简单例子,我想知道为什么有
$(document.body).click(function () {
$( "div" ).each(function (i) {
if ( this.style.color != "blue" ) {
this.style.color = "blue";
} else {
this.style.color = "";
}
});
});
为什么有功能(i)?它等于函数(),并且在执行时没有任何差别。 感谢
答案 0 :(得分:5)
$.each
接受一个带有2个参数的函数:索引和当前元素。但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 = "";
}
});
答案 1 :(得分:2)
i
是您循环的对象的索引... $.each
有两个可选参数index和value。在你的情况下,你正在分配可选参数但不使用它..因为this
也指向当前的循环元素..你可以省略i
$( "div" ).each(function () {
...
并且代码可以工作..