我有一个奇怪的错误。当我尝试运行我的代码时:
var firstJson;
$.getJSON(site_url+"/more/sector_by_city/"+id+"?"+Math.random(), function( json ) {
$.each(json, function(key, value) {
firstJson = 9;
});
});
alert(firstJson);
我收到的提醒是:"undefined"
。
为什么我得到这个而不是9
?
我在这里缺少什么?
(每个循环运行没有问题,JSON中有值)
最后,9
会更改为其他值。
由于
答案 0 :(得分:6)
异步功能我的朋友。在.getJSON
请求完成之前,系统会调用您的提醒。您需要使用回调函数来获取正确的警报。
答案 1 :(得分:4)
因为当您致电alert(firstJson)
时,异步$.getJSON
调用尚未完成,因此firstJson
没有与之关联的值。如果您将提醒移至$.each
功能或$.each
之后,以及$.getJSON
结尾,则会有一个值。
答案 2 :(得分:2)