4

以下のコードでこのエラーが発生する理由を教えてください。

キャッチされていない 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');
4

2 に答える 2

19

たとえば、各子配列を定義する必要があります

var vehicles = []; // parent array;
vehicles[0] = []; // first child array;

したがって、次のものが必要です。

for (var i = 0; i < rows; i++) {
     var vehicles[i] = [];
     ... rest of code here ...
}
于 2013-07-08T19:21:45.547 に答える
4

vehicles[i]値が割り当てられていません。

次の行を追加します。

vehicles[i] = [];

ループの上部にあります。

于 2013-07-08T19:21:41.707 に答える