這裡蒐索程式師資訊,查找有用的技術資料
當前位置:首頁 » 網頁前端 » 前端的id為什麼要具有唯一性
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端的id為什麼要具有唯一性

發布時間: 2022-11-28 04:43:39

① css中id選擇器不是只能用一次嗎,但是這個就用了兩次。如圖。。。

你理解錯了。

css里,id選擇器可以無限次數使用,並且可以寫一樣的。

你在網上聽別人說不能多次使用,應該是出現2個以上同名的id選擇器吧。

例如都是id="div1"

<divid="div1"></div>
<divid="div1"></div>

其實這樣寫,在css里是可以的。但如果頁面涉及到js,就不好了。因為js里獲取DOM是通過getElementById,而如果頁面出現同一個id幾次,這樣就獲取不到了。所以id要有唯一性。

最後,成熟網站里,你很少看到css里用id選擇器的,都是用class,id選擇器留給寫js的人用,這樣避免沖突。

② jsCategoryld是什麼意思

摘要 表示js數組與對象,Category(范疇)的本質:

③ css中的類樣式和id樣式

.xxx 為 class 類
#xxx 為 id

id 具有唯一性,就是說你某個頁面中 id 只應該出現一次,比如你有個導航欄名字考慮叫 nav,而你整個頁面上這個導航欄只出現一次就該用 id,那麼就叫:#nav

而 class 類是用在重復出現的地方,比如你頁面中有n個地方都有紅色的標題字反復出現,那就用 class 定義個類,假設叫:.red{color:red;},然後在要用紅色字的標簽上添加這個類即可。

id 唯一性只是語法上的規范,實際上你一個頁面中出現兩次以上同一個 id ,瀏覽器還是能夠正確解析。

④ js通過id獲取元素的子級元素的奇怪現象

這是因為ID是具有全局唯一性的,也就是說同一個頁面是不允許出現相同ID的元素的(當然你在html中可以設定相同的id,但js只能定位到第一個),所以要想通過id來獲取頁面元素,只需要全局定位(即document.getElementById)即可,不需要在子元素中再來進一步定位。事實上,正是因為上述原因,getElementById是document對象的特有方法,其他對象是沒有這個方法的,這就是為什麼list.getElementById會提示說不是函數的原因!

⑤ html里name和id的區別

ID和Name都可以用來標識一個標記,Javascript分別有兩個方法getElementById和getElementByName來定位Dom節點。
區別如下:
1、我們知道在網頁做Post提交時,是以Form(即表單域)為單位進行提交的,一個Form里有若干個表單對象(如<input type="text" name="UserName" value="請輸入姓名"/>),同一個頁面里可以為多個Form(Asp.net不同,它只允許有一個,且名字必須為Form1),在表單表提交到伺服器端後,可以直接通過Name屬性取到表單域的值,卻無法通過ID直接取到該表表單對象的值。
2、同一個Form里不能有多個name屬性相同的HTML標記,但如果一個網頁中有多個Form,則不同的Form里可以有同個Name屬性的標記。而ID是全局的,在一個HTML文檔里不能有多個節點使用相同的ID,無論它處在哪個Form里。
3、在建立CSS樣式的時候,可以建立ID樣式表(以#為前綴),使具有該ID的樣式直接應用該樣式,而無法建立Name樣式表。
4、在進行網頁編輯時建議使用ID來標識一個節點,而不是使用Name(除非是為了Post提交的需要),同樣使用Javascript進行Dom節點定位時建議使用getElementById方法,因為只有ID能唯一標識一個節點,而同一個網頁里可能會有多個Name屬性相同的節點,它們分別處在不同的Form里。

⑥ id,name,class的區別

ID具有唯一性,CLASS具有普遍性。
ID是不能重復的,所以在HTML的結構中,大結構一定是用ID。
比如標志、導航、主體內容、版權。這些呢接我自己制定的規范命名為#logo , #nav , #content , #right 這些是雷打不動的命名。

我通過實踐總結的使用原則是:ID需要具有唯一性,並且盡量在外圍使用。
而CLASS具有可重復性,並且盡量在結構內部使用。這樣做的好處是有利於網站代碼的後期維護與修改,這樣的做法就會讓所有的CLASS都成為ID的子級或是孫級。

你可以有兩個兒子但你能有兩個爸爸嗎,就是這個道理。在我們寫CSS的時候可以寫成這樣 #father .child {…} 盡量不要讓Class包含ID.ID是唯一的並是父級的,
CLASS是可以重復的並是子級的。

class屬性用於指定元素屬於何種樣式的類.

前端腳本優化為什麼要盡量使用id選擇器

因為id是保證頁面唯一的,這樣有利於代碼的快速運行不用去進行數組運算。同時也可以增加·代碼的可讀性。

⑧ js為什麼根據id就可以找到容器里的子元素,而根據類名就找不到

因為id是具有唯一性的,就好比身份證號碼,一個id只能代表一個子元素,所以用 getElementById 方法可以立刻找到指定的子元素。

而類則不是唯一的,就比如「學生」是一個類,它代表的是一大群人,所以用 getElementsByClassName 方法返回的是一個對象集合而不是單個對象(即使類下面只有一個子元素),因此必須改成 ...getElementsByClassName('bt')[0].children

其實你只要夠聰明,你就能從 getElementsByClassName 最中間的那個s想到原因了(s代表復數),而 getElementById 是沒有s的!

⑨ HTML里name和ID各是什麼意思

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便於相關操作。

⑩ 前端界面使用在html中使用id帶來的壞處有哪些

1.id是唯一的,如果不小心重名了會有影響
2.對相同的操作用id,會加大代碼量,可以用class來代替
3.form表單提交,一般通過name名來獲取,不是id