我像这样编码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
?感谢。
答案 0 :(得分:2)
请求是异步的,因此在填充数组之前执行最后一个警报。尝试在$ .each操作之后放置“alert(machineId [0])”。
答案 1 :(得分:0)
getJSON
方法是异步的 - 当运行时引擎到达最后一个警报时,它还没有完成执行。
在回调完成之前,您无法使用该数组。
在回调中做任何你需要做的事情,例如:
$.each(dataList, function(recordno, machine) {
machineId.push(machine['id']);
alert(machine['id']);
});
alert(machineId.join(", "));
这将显示以逗号分隔的所有ID。