2011-09-10 6 views
0

이 코드를 사용하여 3 divs 채우기 위해 노력하고 있습니다.jquery : eq() selector가 ajax success 함수에서 변수 (올바른 구문)와 작동하지 않습니다.

      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

이렇게하면됩니다. 선택기를 인쇄하여 원하는대로 인쇄 해보십시오. '$ ('. ajaxCell')도 시도 할 수있다 .eq (i)' –

답변

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