jquery:eq()选择器不能在ajax成功函数中使用变量(正确的语法)

时间:2011-09-10 23:51:22

标签: jquery ajax variables selector equation

我正在尝试使用此代码填充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 但我无法使用变量。

我错过了什么吗?

1 个答案:

答案 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);},
    });
}