我编写的jquery代码如下
var machineId = [];
$.getJSON('ajax/getmachines.php', { plant: vPlant, floor: vBuilding + vFloor }, function(dataList) {
$.each(dataList, function(recordno, machine) {
machineId.push(machine['id']);
alert(machine['id']);
});
});
alert(machineId[0]);
$.each
中的第一个警报在每条记录中都显示了正确的数据,但为什么最后一个警报显示未定义?如何使用数组machineId
?谢谢。
发布于 2011-09-12 16:41:07
该请求是异步的,因此在填充数组之前执行最后一个警报。尝试在$.each操作之后放置"alert(machineId)“。
发布于 2011-09-12 16:41:09
getJSON
方法是异步的-当运行时引擎到达最后一个警报时,它还没有完成执行。
在回调完成之前,您不能使用数组。
只要在回调中做任何你需要做的事情,例如:
$.each(dataList, function(recordno, machine) {
machineId.push(machine['id']);
alert(machine['id']);
});
alert(machineId.join(", "));
这将显示用逗号分隔的所有ID。
https://stackoverflow.com/questions/7385174
复制相似问题