二者的區(qū)別與聯(lián)系
- 區(qū)別
-
name
用于多次出現(xiàn)元素的樣式定義,`允許有重復(fù)的值
-
id
:是唯一標(biāo)識符,不允許有重復(fù)
- 聯(lián)系
- 功能相同,都可以用來標(biāo)識
html
標(biāo)簽 - 都可以用
javascript
來根據(jù)指定的id / name
獲得它的對象引用 - 舉例:
document.getElementsByName("XX") // 獲得頁面所有name元素的對象數(shù)組
document.getElementById("XX") //獲取id號為”XX”的值
- 舉例:
- id 就像是一個人的身份證號碼,而 name就像是他的名字,id顯然是唯一的,而 name是可以重復(fù)的
二者的常見用途
name的常見用途
作為可與服務(wù)器交互數(shù)據(jù)的HTML元素的服務(wù)器端的標(biāo)識,比如
input,select,textarea,button
等,我們可以在服務(wù)器端根據(jù)其name
通過 Request.Params 取得元素提交的值,當(dāng)我們需要把這個控件所關(guān)聯(lián)的數(shù)據(jù)傳遞到數(shù)據(jù)庫時,就必須要設(shè)置 name 屬性HTML元素
Input type='radio'
分組,我們知道radio
,button
控件是同一個分組類,操作是互斥的,同一時間只能選中一個radio,這個分組就是根據(jù)相同的name
屬性來實(shí)現(xiàn)的用途3: 建立頁面中的錨點(diǎn),我們知道
<a href="URL">link</a>
是獲得一個頁面超級鏈接,如果不用href
屬性,而改用name
如:<a name="PageBottom"></a>
,我們就獲得了一個頁面錨點(diǎn)id的用途
用途1: id就是Client端HTML元素的Identity(標(biāo)記),主要是在客戶端腳本里用。
用途2:
label
與form
控件的關(guān)聯(lián)中,for屬性指定與label關(guān)聯(lián)的元素的id,不可用name替代舉例:
<label for="MyInput">My Input</label>
<input id="MyInput" type="text">
- 在表單當(dāng)中,由于有些控件具備多元素特性,例如
radio
,checkbox
等,使用id
不便于表單數(shù)據(jù)的提交,此外瀏覽器會根據(jù)name
來設(shè)定發(fā)送到服務(wù)器的request,因此在表單當(dāng)中,用name
來提交數(shù)據(jù),如果不指定Name,就不會發(fā)送到服務(wù)器端 - 除去與表單相關(guān)的元素,只能賦
id
而不能賦name
,這些元素有body、li、a、table、tr、td、th、p、div、span、pre、dl、dt、dd、font、b
等等
HTML中name與id的區(qū)別對比
|name屬性|id屬性|
----|----|----
適用的html
元素 | button
、input
、select
、textarea
、a
、img
、form
applet
、frame
、iframe
、map
、meta
、object
、param
| 所有元素
唯一性|不唯一|唯一
作為錨點(diǎn)|可以 [W3C已棄用]|可以
JavaScript關(guān)聯(lián)|getElementsByName() | getElementById()
作為表單提交信息|必須|無
相關(guān)文章推薦:
細(xì)說HTML元素的ID和Name屬性的區(qū)別
HTML、CSS里面關(guān)于 id、class、name 屬性的區(qū)別和用法