我剛剛使用AJAX,並且正在編寫一個腳本,它將處理頁面上的一堆鏈接,併爲每個鏈接創建AJAX調用。jQuery AJAX調用for循環
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第一次觸發時的[i]值,而後面的.done觸發時不知道[i]的值。
如何確保.done在首次調用AJAX時知道它是[i]值?
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/ –