繁体   English   中英

Javascript无法按名称查找Div元素

[英]Javascript can't find Div Element by Name

该代码昨天使我感到惊讶,我对发生的事情感到好奇。

如果我在窗体的页面上引用我知道的Div元素,甚至使用getElementsByName复制/粘贴确切名称,则以下内容也找不到它。

var coll = document.getElementsByName("txtState"); //coll will be null

如果我在页面上获得了所有Div标签,并通过遍历name属性对其进行遍历,则可以找到正确的Div元素。

var coll = document.getElementsByTagName("Div");
for (var i = 0; i < coll.length; i++) {
    var el= coll[i];
    if (el.name != null) {
        if (el.name.length > 0) {
            if (el.name == "txtState") {
                alert("Found");
            }
        }
    }
}

那么这是什么一回事? 为什么Javascript不了解特定元素? 为什么我必须遍历整个集合?

这里

在继续之前,我们应该消除几本书和Internet上的一些错误信息:与某些人所说的相反,根据W3C HTML,没有合法的方法来使用div或span等标记中的name属性。 4.01规格。 您必须将此属性的使用限制在以下标签中,例如输入,img,框架,iframe,表单,地图,参数,元数据,对象,A,选择,小程序,文本区域或按钮。

因此,“名称”不是div的有效属性,这就是为什么getElementsByName不起作用的原因。

我一直依靠使用getElementById('SomeId')并确保设置了DIV标签的ID属性。

用您的DIV尝试一下,它应该可以解决您的JavaScript问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM