3
for (i = 1; i <= 6; i++) {
    $.post("ajax.php", {param: i}, function (response) {
        console.log(i);
    });
}

如何在$.post完整函数中获得正确的 i 变量,我可以将变量传递给它吗?

4

1 回答 1

5

向它添加一个IIFE,这将复制i每个实例的外部:

for (i = 1; i <= 6; i++) {
  !function( i ){
    $.post("ajax.php", {param: i}, function (response) {
        console.log(i);
    });
  }( i );
}

编辑

至于评论中的问题:

在上面的代码中,我使用!告诉解析器,后面有一个函数表达式,而不是函数声明。这是拥有 IIFE 所必需的,但您可以使用@Wayne 提到的许多不同的方式来做到这一点。

有关更多详细信息,请查看此问题:

于 2013-10-31T08:47:30.683 回答