저는 AJAX를 처음 사용하기 때문에 페이지에 많은 링크를 처리하고 각각에 대해 AJAX 호출을 작성하는 사용자 스크립트를 작성하고 있습니다.jQuery AJAX가 루프를 호출합니다.
for (var i = 0; i < linkList.length; i++)
{
$.ajax({
url: linkList[i].getAttribute("href"),
cache: false
}).done(function(html)
{
var hasAppended = false;
if (html.indexOf('someStringOnGottenPage') != -1 && !hasAppended)
{
hasAppended = true;
var id = linkList[i].getAttribute("href").substring(linkList[i].getAttribute("href").indexOf('='));
$("#links a[href*='" + id + "']").append(' THIS PAGE CONTAINS SPECIFIED DATA');
}
});
}
간단히 말해서, 링크 목록이있는 페이지가 있습니다. 링크를 반복하고 AJAX가 각 링크 페이지의 내용을 처리하고 해당 페이지에 지정된 내용이 있으면 다시보고하고자합니다.
내가 겪고있는 문제는 [i] linkList를 통해 반복하는 데 사용되는 값은 항상 6이며 결코 없어야한다는 것입니다. 나는 .done이 마침내 트리거 할 때 AJAX가 처음 트리거되었을 때의 값과 .done이 나중에 트리거 될 때 [i]의 값을 알 수 없도록 일부 데이터를 전달해야한다고 가정합니다.
어떻게 AJAX를 처음 호출 할 때 .done의 가치를 알 수 있습니까?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures#Creating_closures_in_loops.3A_A_common_mistake –
'링크 것입니다 List'는 jQuery 객체 또는 배열입니까? –
솔루션은 http://jsfiddle.net/arunpjohny/2Da7Z/1/ –