У меня есть глобальный массив javascript, и я могу вызывать значения из него в начале функции, но после этого, когда я предупреждаю лидеров [i], он отображается как неопределенный: Появляется проблема возникает, когда есть два вызова ajax, вложенные друг в друга, JS, похоже, не может найти значения в массиве.Javascript Variable Отображение 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' изменяется на значение leader.length к моменту завершения вашего второго ajax. Попробуйте консоль зарегистрировать ваше значение i –
Вероятно, такое использование вложенности переменной связано с плохой структурой кода –
Hm .. лидеры, кажется, имеют длину 2, хотя и цикл продолжается до <2 – TGH