[英]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.