我有一个js函数,它比较选择对象中的值和函数中保存的值。
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。导致错误的可能原因是什么。
最佳答案
当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
,因为它不存在)。
关于javascript - 脚本5007 : Unable to get property 'value' of undefined or null reference in IE10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672291/