一尘不染

将变量传递到$ .ajax()。done()

ajax

我迷路了。如何将循环变量传递给AJAX .done()调用?

for (var i in obj) {
   $.ajax(/script/).done(function(data){ console.log(data); });
}

显然,如果我要这样做,console.log(i+' '+data) obj在每次迭代中返回对象中的最后一个键。文档使我失望。


阅读 220

收藏
2020-07-26

共1个答案

一尘不染

您可以使用闭包(通过自执行函数)来捕获i每次循环调用的值,如下所示:

for (var i in obj) {
    (function(index) {
        // you can use the variable "index" here instead of i
        $.ajax(/script/).done(function(data){ console.log(data); });
    })(i);
}
2020-07-26