我在循環中使用jQuery「GET」從服務器獲取多個結果。我想將循環索引作爲固定參數包含在回調函數中,但它不起作用。閉環內的for循環 - 循環變量作爲參數的回調
(我跟着的this article關於如何做到這一點的建議。)
但是,我在回調中獲得的價值完全不是我所期待的 - 而不是每個循環索引值,它總是等於到索引的退出值。
即。這裏的代碼片段爲回調的每次執行打印出'16'。我如何得到它打印1,2,3 ...(我意識到訂單可能會不同,這很好)
除了下面的代碼,我已經嘗試了幾種方法來指定回調函數,例如。 function(data, textStatus) { return test(data, textStatus, idx); }, 'text');
等
這是應該如何工作?
function test(data, textStatus, siteNo)
{
console.log("siteNo=" + siteNo);
}
function loadConfigLists()
{
var siteReport;
// retrieve site configuration
jQuery.get("svGetSiteConfig.php", function(data, textStatus)
{
// retrieve port configuration for all sites
for (var idx=1; idx<=15; idx++)
{
var probeIP = siteConfigArray[idx].siteIP;
if (probeIP != "" && probeIP != null)
jQuery.get("svGetPortInfo.php?svSiteIpAddr=" + probeIP+"&s="+idx,
function(data, textStatus) { test(data, textStatus, idx); }, 'text');
else // IP value is blank
siteConfigArray[idx].portManifest = null;
}
}
}, 'text');
}
謝謝!那樣做了。 – Danny
聰明! ............--) – TMS
謝謝,我發現一個更方便的方法是將每個函數(){使用var i}的blahblah變成(function(ii){return function(){舊代碼,但將我更改爲「ii」}})(i); –