【发布时间】:2015-03-19 20:24:05
【问题描述】:
我在 IE11 中收到“无法获取未定义或空引用的属性‘长度’”。函数如下所示:
function chgSupr(val) {
var suprDD = eval('document.getElementById.col1LIAB_SUPERVISOR_CODE');
suprDD.length = 0;
if (!(val == '_')) {
var suprAryStr = '<select name="col1LIAB_SUPERVISOR_CODE" style="width: 150px;" required>';
var suprDD = eval('document.getElementById.col1LIAB_SUPERVISOR_CODE');
suprDD.length = 0;
suprAryStr += '<option value=""""></option>';
for (i = 0; i < suprAry[val].length; i++) {
tmpAry = suprAry[val][i].split('|~|');
suprDD.length++;
if (tmpAry[0].length > 1) {
suprDD[i].value = tmpAry[0];
suprDD[i].text = tmpAry[1] + '|' + tmpAry[0];
} else {
suprDD[i].value = "";
suprDD[i].text = "";
}
suprAryStr += '<option value="' + tmpAry[0] + '">' + tmpAry[1] + '</option>';
}
suprAryStr += '</select>';
} else {
suprDD.length = 0;
}
}
我不确定是什么导致它出错。
【问题讨论】:
-
如果没有一个工作示例,并且由于“长度”属性的多次使用,我们无法确切知道哪个是罪魁祸首(最终可能是多个)。这些 eval 语句肯定是可疑的,因为 getElementById 是一个函数,从它访问的任何属性都将评估为 undefined。
标签: javascript internet-explorer-11