【问题标题】:SCRIPT5007: Unable to get property 'length' of undefined or null referenceSCRIPT5007:无法获取未定义或空引用的属性“长度”
【发布时间】: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


【解决方案1】:
 var suprDD = eval('document.getElementById.col1LIAB_SUPERVISOR_CODE') // is not corrent.
document.getElementById("") //use this or 
eval('document.getElementById("")').

应该避免eval。

【讨论】:

    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多