我有一個全局javascript數組,我可以在函數的開頭調用它的值,但在此之後,當我警告領導[i]時,它顯示爲undefined: 看起來問題當兩個Ajax調用互相嵌套時發生,JS似乎無法找到數組中的值。Javascript變量顯示undefined
JS
function getLeaders(bool) {
var leaders = new Array();
leaders.push('444');
leaders.push('111');
$.ajax({
url: 'url',
crossDomain: true,
type: 'post',
data: {
'clubID': curClub
},
success: function (data) {
for (var i = 0; i < leaders.length; i++)
{
alert(leaders[i]); <===== working fine here
$.ajax({
url: 'someurl',
crossDomain: true,
type: 'post',
data: {
'id': leaders[i] <====== works here
},
success: function(data3) {
alert(leaders[i]); <======= undefined here
var json3 = jQuery.parseJSON(data3);
}
});
}
}
});
};
當然,如果有道理。你的變量'i'在你的第二個Ajax完成時改變爲leaders.length值。試着控制檯登錄你的i值 –
可能這種嵌套使用的變量是由代碼結構錯誤 –
嗯..領導者似乎是長度爲2但循環直到<2 – TGH