前端學習筆記之HTML中的id,name,class區別


name 屬性用於在 JavaScript 中對元素進行引用,或者在表單提交之后,對表單數據進行引用。

html的name和id可以類比身份證的姓名和身份證編號,
編號id具有唯一性,一個id只出現一次。
名稱name具備可重復性,可以多次出現。


在css中兩者都具備識別html元素的作用,name用點號.表示,id用井號#
一般name用於通用多次出現元素的樣式定義,id用於唯一性元素樣式定義。
在表單當中,由於有些控件具備多元素特性,例如radio checkbox等,使用id不便於表單數據的提交,此外瀏覽器會根據name來設定發送到服務器的request,因此在表單當中,用name來提交數據。
當然,在實際的html中,也完全可以不用id,用單獨的class也可以起到代替id的作用。但是在js中,是無法通過class直接后去html元素的, 定義id便於相關操作。

 

id要符合標識的要求,比如大小寫敏感,最好不要包含下划線(因為不兼容CSS)。而name基本上沒有什么要求,甚至可以 用數字。table、tr、td、div、p、span、h1、li等元素一般用id。與表單相關的元素也可以賦ID值, 但為這些元素賦ID值的時候引用這些元素的方法就要變一下了,具體的如下:
賦name時引用元素的方式: document.formName.inputName或document.frames(“frameName”)
賦id時引用元素的方式: document.all.inputID或document.all.frameID
除去與表單相關的元素,只能賦id不能賦name,這些元素有body、li、a、table、tr、td、th、p、div、span、pre、dl、dt、dd、font、b等等
對於name和class來說意義是一樣的。但是name主要是提交表單用的 ,而class是設置標簽的類,用於指定元素屬於何種樣式的類,主要用來設置css樣式的。但兩種都可以用來識別css,推薦除了表單外都用class。

 

name的用途

用途1:

主要是用於獲取提交表單的某表單域信息, 作為可與服務器交互數據的HTML元素的服務器端的標示,比如input、select、textarea、框架元素(iframe、frame、 window的名字,用於在其他frame或window指定target ) 和button等,這些元素都與表單(框架元素作用於form的target)提交有關,瀏 覽器會根據name來設定發送到服務器的request, 在表單的接收頁面只接收有name的元素, 所以賦ID的元素通過表單是接收不到值的。 我們可以在服務器端根據其Name通過Request.Params取得元素提交的值。在form里面,如果不指定Name,就不會發送到服務器端 。


用途2:

HTML元素Input type=’radio’分組,我們知道radio button控件在同一個分組類,check操作是mutex的,同一時間只能選中一個radio,這個分組就是根據相同的Name屬性來實現的。


用途3:

建立頁面中的錨點,我們知道link是獲得一個頁面超級鏈接,如果不用href屬性,而改用Name,如:,我們就獲得了一個頁面錨點。


用途4:

作為對象的Identity,如Applet、Object、Embed等元素。比如在Applet對象實例中,我們將使用其Name來引用該對象。


用途5:

在IMG元素和MAP元素之間關聯的時候,如果要定義IMG的熱點區域,需要使用其屬性usemap,使usemap=”#name”(被關聯的MAP元素的Name)。


用途6:

某些特定元素的屬性,如attribute,meta和param。例如為Object定義參數或Meta中。


當然HTML元素的Name屬性在頁面中也可以起那么一點ID的作用,因為在DHTML對象樹中,我們可 以使用document.getElementsByName來獲取一個包含頁面中所有指定Name元素的對象數組。Name屬性還有一個問題,當我們動 態創建可包含Name屬性的元素時,不能簡單的使用賦值element.name = “…”來添加其Name,而必須在創建Element時,使用document.createElement(‘‘)為元素添加Name屬性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM