Javascript变量显示未定义

时间:2013-07-24 01:58:22

标签: javascript ajax arrays nested undefined

我有一个全局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);
                       }
                });
            }
           }
      });
     };

1 个答案:

答案 0 :(得分:2)

由于调用是异步的,因此在调用返回时i的值很可能是leader.length。所以你可能正在访问一个超出范围的索引。