0

i の現在の値を取得するにはどうすればよいですか?

var array = [1, 2, 3];

for (var i = 0; i < array.length; i++)
{
   $(element).load("http://www.google.de", () => {
      console.log(i);
   }
}

Will return 2, 2, 2... How can i return 0, 1, 2 ?
4

1 に答える 1

1

iこれは、ajax コールバック内の外部関数からクロージャ変数を使用しているためです。変数値に加えられた変更は、コールバック メソッドに反映されます。

考えられる方法の 1 つは、匿名関数を使用して、以下に示すカスタム クロージャを提供することです。

for (var i = 0; i < array.length; i++)
{
   (function(i){
   $(element).load("http://www.google.de", () => {
      console.log(i);
   }
   })(i)
}
于 2013-06-03T08:49:08.867 に答える