Javascript 未捕获的TypeError:无法读取选择框中未定义的属性“0”
我不明白为什么我会出错,但最终的结果实际上是我想要的。以下是我的功能:Javascript 未捕获的TypeError:无法读取选择框中未定义的属性“0”,javascript,jquery,Javascript,Jquery,我不明白为什么我会出错,但最终的结果实际上是我想要的。以下是我的功能: function populate(){ for(var i = 0; i < locations.length; i += 1){ var select = document.getElementById("end"); select.options[select.options.length] = new Option(buildings[i][0], buildings[i
function populate(){
for(var i = 0; i < locations.length; i += 1){
var select = document.getElementById("end");
select.options[select.options.length] = new Option(buildings[i][0], buildings[i][3]);
}
};
并填充此加载:
<body onload="populate();">
<select class="form-control" id="end" onchange="calcRoute();">
<option disabled selected> -- Select a Destination -- </option>
</select>
我不知道为什么它会在Chromes控制台中抛出错误,但仍然可以正常工作。可能您的I变量刚刚超出了建筑物的长度。例如,如果您有20个位置和15栋建筑,当浏览器评估new Optionbuildings[15][0],buildings[15][3]时,它会抛出此错误
编辑:更具体地说,假设我们有15座建筑,我们的数组将有从0到14的索引,因此建筑[15]是未定义的。这就是错误的来源,您试图读取建筑物[15][0],这就像读取未定义的[0]
为了获得更好的响应,您也应该发布locations变量
var建筑物=[
[Allied Health'、'buildings'、'35.206815、-101.908493',2、,http://www.actx.edu/staff/images/icons/ac.png],
[A栋],[35.206718,-101.906127',3,http://www.actx.edu/staff/images/icons/ac.png],
[B栋”,“B栋”,“35.207614,-101.907383”,4,http://www.actx.edu/staff/images/icons/ac.png],
[C栋],[35.207545,-101.905702',5,http://www.actx.edu/staff/images/icons/ac.png],
[D栋','栋','35.207408,-101.906485',6,http://www.actx.edu/staff/images/icons/ac.png],
[‘儿童发展中心’、‘建筑物’、‘35.207409、-101.908901’、7、,http://www.actx.edu/staff/images/icons/ac.png],
体操/舞蹈、建筑、35.207264、-101.909682、8、,http://www.actx.edu/staff/images/icons/ac.png],
[Jones Hall','buildings','35.207514,-101.908236',9,http://www.actx.edu/staff/images/icons/ac.png],
[‘演讲厅’、‘建筑物’、‘35.206754、-101.907246’、10、,http://www.actx.edu/staff/images/icons/ac.png],
['N.W.图书馆','buildings','35.206543,-101.904580',11,http://www.actx.edu/staff/images/icons/ac.png],
[三角洲大厦','大厦','35.208272,-101.905817',12,http://www.actx.edu/staff/images/icons/ac.png]
];
变量位置=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
函数填充{
forvar i=0;i<body onload="populate();">
<select class="form-control" id="end" onchange="calcRoute();">
<option disabled selected> -- Select a Destination -- </option>
</select>
select.options[select.options.length] = new Option(buildings[i][0], buildings[i][3]);