有人能告诉我为什么这个警报是空的吗?关于JavaScript可变范围的问题
var pending_dates = [];
$.getJSON('/ajax/event-json-output.php', function(data) {
$.each(data, function(key, val) {
pending_dates.push({'event_date' : val.event_date});
});
});
alert(pending_dates);
我无法理解这一点。我是否声明pending_dates
是全局变量,可在每个循环内访问?如何解决这个问题?
请注意,JSON输出运行良好。如果我要在getJSON function
内声明待定日期(并在该函数中发出警报),它将起作用,但我需要将数据存储在getJSON
函数之外的数组中。
感谢您的贡献。
编辑
感谢您的评论此代码工作:
pending_dates = [];
$.getJSON('/ajax/event-json-output.php', function(data) {
$.each(data, function(key, val) {
pending_dates.push({'event_date' : val.event_date});
});
}).success(function() { alert(pending_dates); })
非常感谢你的贡献!
感谢您的回答,但恐怕没有用。任何其他想法? – maartenmachiels
变量定义和警报在相同的范围内,所以这个建议与问题无关。 – jfriend00