我正在尝试使用此代码填充3个div
for(var i = 0; i<3; i++){
$.ajax({
type: "post",
url: "/cake/orders/calendar/",
data: postData[i],
success: function(response) { $(".ajaxCell:eq("+ i +")").html(response);},
});
}
好像一切都好,设置变量,收到回复......并使用:eq(0)......或1或2 但我无法使用变量。
我错过了什么吗?
答案 0 :(得分:2)
您在循环的每次迭代中捕获变量而不是变量的值。当请求返回时,它在请求返回时使用变量的值,而不是在请求发出时。使用索引作为参数调用执行ajax请求的函数,以便在该函数调用中捕获该值。
for(var i = 0; i<3; i++){
doRequest(i);
}
function doRequest(i) {
var selector = ".ajaxCell:eq("+ i +")";
$.ajax({
type: "post",
url: "/cake/orders/calendar/",
data: postData[i],
success: function(response) { $(selector).html(response);},
});
}