【发布时间】:2013-07-08 19:20:08
【问题描述】:
谁能告诉我为什么下面的代码会出现这个错误:
未捕获的类型错误:无法设置未定义的属性“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');
【问题讨论】:
-
vehicles[i]未定义。先定义吧。 -
因为“vehicles”数组是空的,我猜是...
-
旁注:您的代码效率极低。您应该将
$(data).find('row')和$(data).find('row').eq(i)存储在变量中,这样您就不会执行太多不必要的DOM 查询。 -
谢谢安迪,我知道这很糟糕,我只是为了测试目的而这样做。 :)
-
只要你知道... ;-)
标签: javascript jquery arrays