如何从$ .getjson获取数据

时间:2011-09-12 08:33:33

标签: javascript jquery getjson

我像这样编码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?感谢。

2 个答案:

答案 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。