我有一个全局javascript数组,我可以在函数开头调用它的值,但之后,当我提醒领导者[i]时,它显示为未定义: 当两个ajax调用相互嵌套时,似乎出现问题,JS似乎无法在数组中找到值。
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);
}
});
}
}
});
};
答案 0 :(得分:2)
由于调用是异步的,因此在调用返回时i的值很可能是leader.length。所以你可能正在访问一个超出范围的索引。