我有一个奇怪的错误。当我尝试运行代码时:

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更改为其他值。

谢谢

最佳答案

调用alert时,变量没有值。您必须使用getJSON等待done()结束。

var firstJson;
$.getJSON(site_url+"/more/sector_by_city/"+id+"?"+Math.random(), function( json ) {
    $.each(json, function(key, value) {
        firstJson = 9;
    });
}).done(function() {
   alert(firstJson);
});

参考文献:
done()
$.getJSON

10-04 15:25