js中web頁(yè)面元素的調(diào)用可以有兩種識(shí)別方法:id和name
自己在用的過(guò)程中總結(jié)一下id和name的使用區(qū)別。
一,使用范圍
除 BASE, HEAD, HTML, META, SCRIPT, STYLE, TITLE 標(biāo)簽外,id 都可用.
name只用于APPLET,SELECT,FORM,FRAME,IFRAME,IMG,A,INPUT,OBJECT,MAP,PARAM,META. (name有時(shí)有自己的用途)
name 用于 form 內(nèi)元素,提交需要
id 用于 form 外元素好用因?yàn)?DOM 能直接取得單一元素
document.getElementByIdx_x_x(“id_Number”) 得到的是單個(gè)元素
document.getElementsByName(“name”) 得到的是數(shù)組
注:元素的獲取方式
取得 id :document.getElementByIdx_x_x(“idname”)
取得 name : document.getElementsByName(“name”)[0?1?2?3?....]
表單元素 (form input textarea select) 與框架元素 (iframe frame) 用 name
這些元素都與表單 ( 框架元素作用于 form 的 target) 提交有關(guān) , 在表單的接收頁(yè)面只
接收有 name 的元素 , 賦 ID 的元素通過(guò)表單是接收不到值的
Name 其實(shí)要復(fù)雜的多,因?yàn)?Name 有很多種的用途,所以它并不能完全由 ID 來(lái)代替,從而將其取消掉。
具體用途有:
用途 1: 作為可與服務(wù)器交互數(shù)據(jù)的 HTML 元素的服務(wù)器端的標(biāo)示,比如 input 、 select 、 textarea 、和 button 等。我們可以在服務(wù)器端根據(jù)其 Name 通過(guò) Request.Params 取得元素提交的值。
用途 2: HTML 元素 Input type=’radio’ 分組,我們知道 radio button 控件在同一個(gè)分組類(lèi), check 操作是 mutex 的,同一時(shí)間只能選中一個(gè) radio ,這個(gè)分組就是根據(jù)相同的 Name 屬性來(lái)實(shí)現(xiàn)的。
用途 3: 建立頁(yè)面中的錨點(diǎn),我們知道 link 是獲得一個(gè)頁(yè)面超級(jí)鏈接,如果不用 href 屬性,而改用 Name ,如: ,我們就獲得了一個(gè)頁(yè)面錨點(diǎn)。
用途 4: 作為對(duì)象的 Identity ,如 Applet 、 Object 、 Embed 等元素。比如在 Applet 對(duì)象實(shí)例中,我們將使用其 Name 來(lái)引用該對(duì)象。
用途 5: 在 IMG 元素和 MAP 元素之間關(guān)聯(lián)的時(shí)候,如果要定義 IMG 的熱點(diǎn)區(qū)域,需要使用其屬性 usemap ,使 usemap=”#name”( 被關(guān)聯(lián)的 MAP 元素的 Name) 。
用途 6: 某些特定元素的屬性,如 attribute ,和 param 。例如為 Object 定義參數(shù)。
二,唯一性區(qū)別
有些標(biāo)簽,可以同時(shí)有name和id.
id 就像身分證號(hào),是唯一的, name 就像姓名一樣可以同名
在一個(gè)HTML網(wǎng)頁(yè)中,id是唯一的,即只有某一個(gè)標(biāo)簽,或某一個(gè)塊的標(biāo)識(shí)符是這個(gè)id.
而當(dāng)有多個(gè)name時(shí),系統(tǒng)自動(dòng)使同name歸為數(shù)組
賦 name: document.formName.inputName document.frames(“frameName”)
賦 ID : document.all.inputID document.all.frameID
在通用的情況下:
NAME.屬性
document.NAME.屬性
document.getElementsByName(‘NAME’)
ID.屬性
document.ID.屬性
document.getElementByIdx_x_x(‘ID).屬性