所以我试图将数据从JSON分配给全局变量以便以后多次使用它,但是我遇到了这个问题。第一个警报通过,但是对于第二个警报,我无法读取未定义的第4个警报。
var refference=[]
$.getJSON('letters.json', function(data) {
refference=data.letters
alert(refference[1][4])
})
alert(refference[1][4])
谢谢!
答案 0 :(得分:5)
第二个alert(refference[1][4])
会给您一个错误,因为在那个时间点,$.getJSON()
请求尚未返回。所以refference
对象仍然是[]
,因此属性4未定义。
答案 1 :(得分:1)
正如Kevin B所说,警报在ajax呼叫完成之前就开始了。您必须在ajax请求的成功回调中放置第二个警报(或任何其他函数),以确保在数据完全加载后触发它。
类似的东西:
$.getJSON('letters.json', function(data) {
refference=data.letters;
alert(refference[1][4]);
}).success(function(){
alert(refference[1][4]);
});