任何人都可以告诉我为什么我收到以下代码的错误:
未捕获的TypeError:无法设置未定义的属性“0”
var vehicles = [];
$.get('../poll/index.php?data=vehicles', function(data) {
var rows = $(data).find('row').length;
for (var i = 0; i < rows; i++) {
vehicles[i][0] = $(data).find('row').eq(i).find('stage').text();
vehicles[i][1] = $(data).find('row').eq(i).find('direction').text();
vehicles[i][2] = $(data).find('row').eq(i).find('stageName').text();
vehicles[i][3] = $(data).find('row').eq(i).find('atco').text();
vehicles[i][4] = $(data).find('row').eq(i).find('service').text();
vehicles[i][5] = $(data).find('row').eq(i).find('journey').text();
vehicles[i][6] = $(data).find('row').eq(i).find('fleet').text();
vehicles[i][7] = $(data).find('row').eq(i).find('longitude').text();
vehicles[i][8] = $(data).find('row').eq(i).find('latitude').text();
vehicles[i][9] = $(data).find('row').eq(i).find('operator').text();
vehicles[i][10] = $(data).find('row').eq(i).find('position').text();
}
}, 'xml');
答案 0 :(得分:13)
您需要定义每个子数组,例如
var vehicles = []; // parent array;
vehicles[0] = []; // first child array;
所以你需要:
for (var i = 0; i < rows; i++) {
var vehicles[i] = [];
... rest of code here ...
}
答案 1 :(得分:3)
vehicles[i]
没有分配给它的值。
添加一行:
vehicles[i] = [];
位于循环的顶部。