可以說幾乎每個做過Web開發的人都問過,到底元素的ID和Name有什麼區別阿?爲什麼有了ID還要有Name呢?而同樣我們也可以得到最經典的答案:ID就像是一個人的身份證號碼,而Name就像是他的名字,ID顯然是唯一的,而Name是可以重複的。
上面一段對於ID和Name的解答說的太籠統了,以下我們來具體探討一下。
一、name和id 都可以用來調用html中的元素
當我們需要在腳本里訪問頁面內一個html元素的時候,一般都是通過指定HTML元素的id或name
WEB標準下可以通過getElementById() 、getElementsByName() 、 getElementsByTagName()訪問HTML文檔中的任一個元素。
要訪問某一特定元素儘量用標準的document.getElementById(id)。
如果一個文檔中有兩個以上的標籤NAME相同,那麼document.getElementsByName(name)就可以取得這些元素組成一個數組。
訪問標籤則用標準的document.getElementByTagName(tag)。
注意:id 標識的是大小寫敏感的,而name基本上沒有什麼要求,甚至可以用數字。
二、什麼情況下必須用name?
1、表單元素(例如:form、input、textarea、select 、button 等)通常與表單提交有關,在表單的接收頁面只接收有name的元素,賦id的元素通過表單是接收不到值的。
2、表單元素複選框checkbox、單選按鈕 radio 通常會對應多個控件,這時必須用name屬性來實現分組。同一組使用同一個name。使兩個題目的選項之間不產生干擾。
3、框架元素(iframe、frame)的名字,用於在其他iframe、frame指定target。
4、建立頁面中的錨點,我們知道<a href="URL">link</a>是獲得一個頁面超級鏈接,如果不用href屬性,而改用name,如:<a name="pageTop"></a>,我們就獲得了一個頁面錨點。
5、在IMG元素和MAP元素之間關聯的時候,如果要定義IMG的熱點區域,需要使用其屬性usemap,使usemap="#name"(被關聯的MAP元素的name)。
6、某些特定元素的屬性,如attribute,meta和param。例如爲Object定義參數<PARAM NAME = "appletParameter" VALUE = "value">或Meta中<META NAME = "Author" CONTENT = "Admin10000.com">
三、什麼情況下必須用id ?
1、label與form控件的關聯。例如:
1
2
|
< label
for = "myInput" >文本錄入框</ label > < input
id = "myInput"
type = "text"
/> |