我有一个发送ajax请求的循环。我想在我的ajax回调函数中包含循环索引:
for (i=0;i<10;i++) {
$.ajax({
data: "index="+i
success: function (data) {
//I want to be able to see the variable (i) here
//since the request is async, it returns the last index on all
$("#div"+i).append(data);
}
})
}
答案 0 :(得分:2)
你需要将它包装在一个闭包中。这应该这样做:
for (i=0;i<10;i++) {
(function(i) {
$.ajax({
data: "index="+i
success: function (data) {
//I want to be able to see the variable (i) here
//since the request is async, it returns the last index on all
$("#div"+i).append(data);
}
})
})(i);
}
答案 1 :(得分:1)
您必须围绕ajax请求创建一个闭包,以保留i
的值作为请求回调函数的本地值:
for (i=0;i<10;i++) {
(function(i) {
$.ajax({ /* ... */ });
})(i);
}
答案 2 :(得分:0)
您可以使用data
返回索引参数以及其余数据
1: REST OF DATA HERE
从数据字符串中删除索引。