2009-02-20 99 views
1

此代码昨天让我感到惊讶,我对发生了什么事情感到好奇。Javascript无法找到Div元素名称

如果我指的是我知道的Div元素在表单中的页面上,甚至使用getElementsByName复制/粘贴确切名称,以下内容可能找不到它。

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

如果我得到页面上的所有Div标签,并遍历它们看着名称属性,我可以找到正确的Div元素。

​​

那么,怎么了?为什么Javascript无法获得特定元素?为什么我必须遍历集合?

+0

请使用格式。 – Gumbo 2009-02-20 18:04:53

+0

从技术上讲,div元素不允许使用name属性。仅适用于表单,表单域,框架,iframe等。 – scunliffe 2009-02-20 18:22:05

回答

24

here

我们继续之前,我们应该澄清一些误传的几本书,并在互联网上:相反的是有些人所说,有使用的名称属性从没有合法的方式根据W3C HTML 4.01规范,这些标签是div或span。您必须将此属性的用法限制为输入,img,框架,iframe,表单,映射,参数,元,对象,A,select,applet,textarea或按钮等标签。

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

2

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

用你的DIV试试这个,它应该可以解决你的javascript问题。