我有一个js函数,用于比较select对象中的值和函数中保存的值。
function xyz()
{
document.getElementById("max1").options.value='abc';
document.getElementById("max2").options.value='xyz';
for (var i=0;i<=document.formabc.max1.options.length;i++)
{
if(document.getElementById("max1").options[i].value ==
document.getElementById("max1").options.value)
{
//Some code
}
}
}
我收到一个错误,即document.getElementById(“max1”)。options [i]未定义。我正在使用IE10。可能导致错误的原因是什么。
答案 0 :(得分:2)
i==0
时是否收到此错误?如果没有,则将for
循环条件更改为
for (var i=0; i < document.formabc.max1.options.length; i++)
您的条件为i <= document.formabc.max1.options.length
。
如果下拉列表中有10个项目,则第9个项目将是最后一项,因此循环需要持续10次(从0到9,基于零的索引)。根据您的情况,循环将持续最多11次(0到10),因此您不会获得document.getElementById("max1").options[10].value
(因为它不存在,它将是undefined
。)