我一直得到“无法获得未定义或空引用的属性'长度'”

I keep getting 'unable to get property 'length' of undefined or null reference'

本文关键字:引用 属性 长度 一直 未定义      更新时间:2023-09-26

我正在测试MS CRM中较大代码段的独立片段的功能,我想知道为什么我总是收到这一小段代码的上述错误:

function testThis()
{
    var optionset = document.getElementById("new_makeyear");
    console.log("this is supposed to be something " + optionset.Options.length);
}

"new_makeyear"是一个选项集。日志语句只是为了让我可以通过控制台查看行为。怎么了?

谢谢

正如Henk在他的评论中提到的,你不应该访问DOM。 您应该使用 API 检查选项集的选项,如下所示:

function testThis() {
    var makeYear = Xrm.Page.getAttribute("new_makeyear");
    if (!makeYear) { return; }
    console.log(makeYear.getOptions().length + " options currently available");
}

如果您设法访问生成的 DOM(例如通过 onchange 事件),则 optiongroup 可用作 if(this.options[this.selectedIndex].parentNode.tagName =='optgroup') var og = this.options[this.selectedIndex].parentNode.label;