HTML中的id和name詳解

id和name是HTML中經(jīng)常用到的兩個屬性,對于這兩個屬性的使用,會有一些疑惑的地方,比如:

  • id有什么用途?
  • name有什么用途
  • 什么情況下必須用id
  • 什么情況下必須用name
  • id和name有什么區(qū)別?
    以下便是基于以上問題的解釋。

1. id 的用途

  • id就是Client端HTML元素的Identity(標記),主要是在客戶端腳本(JavaScript)里用
  • label與form控件的關聯(lián),如:
<label for="MyInput">My Input</label>
   <input id="MyInput" type="text">

<label>標簽的作用是為<input>元素定義注釋
<label>標簽中的for 屬性值必須與相關元素的 id 屬性值相同。

  • 腳本中獲得對象:IE支持在腳本中直接以id(而不是name)引用該id標識的對象。
    例如上面的input,要在腳本中獲得輸入的內(nèi)容,可以直接以 MyInput.value來獲得。如果用DOM的話,則用document.getElementById("MyInput").value;
  • 在CSS中用于給HTML中的元素定義一個元素的獨特的樣式
#idName
{
屬性1:屬性值1;
屬性2:屬性值2
}

2. name 的用途

  • 作為可與服務器交互數(shù)據(jù)的HTML元素的服務器端的標示,比如input、select、textarea、和button等。我們可以在服務器端根據(jù)其Name通過Request.Params取得元素提交的值。
  • HTML元素Input type='radio'分組,我們知道radio button控件在同一個分組類,check操作是mutex的,同一時間只能選中一個radio,這個分組就是根據(jù)相同的Name屬性來實現(xiàn)的。
  • 建立頁面中的錨點,我們知道<a href="URL">link</a>是獲得一個頁面超級鏈接,如果不用href屬性,而改用Name,如:<a name="PageBottom"></a>,我們就獲得了一個頁面錨點。
  • 作為對象的Identity,如Applet、Object、Embed等元素。比如在Applet對象實例中,我們將使用其Name來引用該對象。
  • 在IMG元素和MAP元素之間關聯(lián)的時候,如果要定義IMG的熱點區(qū)域,需要使用其屬性usemap,使usemap="#name"(被關聯(lián)的MAP元素的Name)。
  • 某些特定元素的屬性,如attribute,meta和param。例如為Object定義參數(shù)<PARAM NAME = "appletParameter" VALUE = "value">或Meta中<META NAME = "Author" CONTENT = "Dave Raggett">。

3. 下列情況必須用到id

  • <label> 與 form 控件的關聯(lián)
  • CSS的元素選擇機制,以#MyId的方式指定應用樣式的元素,不能用name替代
  • 腳本中獲得對象: IE支持在腳本中直接以id(而不是name)引用該id標識的對象

4. 下列情況下必須用到name

  • 表單(form)的控件名,提交的數(shù)據(jù)都用控件的name而不是id來控制。因為有許多name會同時對應多個控件,比如checkbox和radio,而id必須是全文檔中唯一的。此外瀏覽器會根據(jù)name來設定發(fā)送到服務器的request。因此如果用id,服務器是無法得到數(shù)據(jù)的。
  • frame和window的名字,用于在其他frame或window指定target

5. id 和 name 的區(qū)別

id-name.png
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容