对于以下JavaScript代码行为,我找不到合理的解释。
我对javascript不太熟悉,并且以下代码是否有效。

在已迁移的旧版应用程序中,有以下几行代码:

function myFunctionName(name)
{
    for(k=0; k < document.budget_sections.length; ++k) {
    //...do something
    }
}


请注意document.budget_sections.length部分。在生产中,此代码引发错误,提示无法访问null的属性长度。在我的开发环境中,它运行良好。
由于budget_sections是表单元素(<form id="budget_sections" method="post" runat="server">)的ID,因此将代码更改为我所知道的语法:

function myFunctionName(name)
{
    var form = document.getElementById("budget_sections");
    for(k=0; k < form.length; ++k) {
    //...do something
    }
}


此语法/符号在整个应用程序中使用,并且可在大多数页面上使用。对我来说,这里的问题是:为什么这个旧代码仍然有效,为什么现在仍会失效?我以前从未读过document.DOM-object.xxx表示法,也找不到有关它的文档。

最佳答案

由于budget_sections是元素的ID


不,这是表格的名称。

document.formname.length


仍然有效。


  我找不到有关它的文档。


这是MDN中document.images.length的一个示例

MDN link

所有这些都是您properties中的document。您可以在该页面的左侧边栏中阅读有关此内容的更多信息。您将找到与document.DOM_Object.property类似的所有属性的文档。

关于javascript - 为什么传统应用程序中的document.DOM-object.property为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29490348/

10-12 00:22
查看更多