2009-02-20 100 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問題。