Javascript 无法设置属性';0';二维阵列的设计
有人能告诉我为什么下面的代码会出现此错误: 未捕获类型错误:无法设置未定义的属性“0”Javascript 无法设置属性';0';二维阵列的设计,javascript,jquery,arrays,Javascript,Jquery,Arrays,有人能告诉我为什么下面的代码会出现此错误: 未捕获类型错误:无法设置未定义的属性“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').
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');
var车辆=[];
$.get('../poll/index.php?data=vehicles',函数(数据){
变量行=$(数据).find('row').length;
对于(变量i=0;i
车辆[i]
没有为其分配值
添加一行:
vehicles[i] = [];
在循环的顶部。您需要定义每个子数组,例如
var vehicles = []; // parent array;
vehicles[0] = []; // first child array;
因此,您需要:
for (var i = 0; i < rows; i++) {
var vehicles[i] = [];
... rest of code here ...
}
for(变量i=0;i
车辆[i]
未定义。首先定义它。因为“vehicles”数组是空的,这是我的猜测……旁注:您的代码效率极低。您应该将$(数据).find('row')
和$(数据).find('row').eq(i)
存储在变量中,这样您就不会执行太多不必要的DOM查询。谢谢Andy,我知道这很糟糕,我只是为了测试目的而这样做。:)只要你知道…;-)啊。我现在觉得自己很傻,这是漫长的一天。哈哈。非常感谢:)-我会在计时器启动时接受你的答案。