2

所以我试图将数据从 JSON 分配给一个全局变量,以便以后多次使用,但我遇到了这个问题。第一个警报通过了,但是对于第二个警报,我无法读取未定义的属性 4。

  var refference=[]
  $.getJSON('letters.json', function(data) {
              refference=data.letters
              alert(refference[1][4])
        })
  alert(refference[1][4])

谢谢!

4

2 回答 2

5

第二个alert(refference[1][4])会给你一个错误,因为在那个时间点,$.getJSON()请求还没有返回。所以refferenceobject 仍然是[],因此属性 4 是未定义的。

于 2013-03-18T22:02:17.080 回答
1

As Kevin B said, the alert is firing before the ajax call is complete. You'd have to put the second alert (or any other function) in the success callback of the ajax request to ensure that it fires after the data is completely loaded.

something like:

$.getJSON('letters.json', function(data) {
              refference=data.letters;
              alert(refference[1][4]);
        }).success(function(){
                    alert(refference[1][4]);
                  });

Here's a working jsFiddle example using a JSON webservice

于 2013-03-18T22:04:04.597 回答