为什么此代码总是返回0?
var possibleMatches = new Array();
$.getJSON('getInformation.php', function(data) {
$.each(data, function(i){
possibleMatches.push(data[i]);
})
});
alert(possibleMatches.length);
尽管我可以移动或添加“alert(possibleMatches.length);”在$ .each里面,它将输出正确数量的元素。
我只是好奇为什么它的值没有按我预期的那样进入数组。我确定这是局部变量还是全局变量的问题,只是不确定原因。
基本上,这是要尝试用数据结果填充满可能的数组。
谢谢!
最佳答案
异步性。 alert(possibleMatches.length);
行在$.getJSON()
的成功回调执行之前执行。
因此,要准确地获取警报报告,只需移动它即可。
var possibleMatches = new Array();
$.getJSON('getInformation.php', function(data) {
$.each(data, function(i){
possibleMatches.push(data[i]);
})
// To here
alert(possibleMatches.length);
});
// From here
请记住,AJAX中的第一个 A 代表“异步”