爲什麼ID存在?
回答
首先,從HTML 4.01 Specification Section 7.5.2:
ID =名
該屬性分配一個名稱的元素。該名稱在文檔中必須是唯一的。
類= CDATA列表
該屬性分配一個類名稱或一組類名的給一個元素。任何數量的元素可以被分配相同的類名稱或名稱。多個類名稱必須用空格字符分隔。
我明白你的問題的精神,是故意選擇唯一的類名,你可以模擬通過ID屬性給出的功能,可以說是讓id屬性是多餘的。那麼,我可以想到至少有一件事情可以做到只有與ID;使用for
屬性將<label>
元素與表單元素相關聯。例如:
<label for="firstname">First Name:<label>
<input type="text" id="firstname" name="firstname" value="" />
這是一個出於可訪問性原因的良好做法。如果您使用複選框或單選按鈕元素使用<label for="id">
,則可以獲得可點擊標籤的額外獎勵。例如:
<label for="male">Male</label> <!-- the word "Male" is clickable -->
<input type="radio" id="male" name="sex" value="male" />
<label for="female">Female</label> <!-- the word "Female" is clickable -->
<input type="radio" id="female" name="sex" value="female" />
沿着同樣的路線,一些[WAI-ARIA屬性](http://www.w3.org/TR/2010/WD-wai-aria-20100916/states_and_properties )只能使用ID。詠歎調,詠歎調,詠歎調,詠歎調,詠歎調和詠歎調。 – Alohci
類是一組類似的元件 ID是唯一的元件。 如果你想改變所有的複選框,你可以使用class。 如果你想對特定的複選框做些什麼,你可以使用id。
你可以使用這個ID作爲一個類,所以在這種情況下ID屬性是不必要的 – Alex
@Alex你要**識別**對象,而不是** class **它。你不把它放在某個班級,你給它一個身份。這是更多的語義。 – 2011-06-21 04:03:50
DOM不存在只是爲了樣式元素 - 元素也可以被操作(通常通過Javascript),並且通常通過ID選擇元素比通過類選擇要高效得多。
從http://www.w3.org/TR/html401/struct/global.html#adef-class:
id屬性在HTML幾個角色:
作爲一個樣式表選擇。
作爲超文本鏈接的目標錨。
作爲從腳本引用特定元素的手段。
作爲聲明的OBJECT元素的名稱。
對於用戶代理的通用處理(例如,用於在從HTML頁面提取數據到數據庫中時識別字段,將HTML文檔翻譯成其他格式等)。
另一方面,class屬性將一個或多個類名稱分配給一個元素;該元素可以說屬於這些類別。類名可以由多個元素實例共享。 class屬性在HTML中有幾個角色:
作爲樣式表選擇器(當作者希望將樣式信息分配給一組元素時)。
用於用戶代理的通用處理。
我似乎無法找到時class
屬性添加到HTML規範的參考,但我可以從我記得id
屬性很多靠後(特別是對形式的個人經驗說處理)。
任何你可以用ID做的事情,你可以做類。
其實沒有。如果你給一個元素的ID,也可以是一個鏈接的目標(例如,http://www.example.com/page#foo
把你帶到與id="foo"
的元素page
,這是現在優於舊<a name="foo">
機制。)
那麼爲什麼那裏有一個ID屬性呢?
因爲它們服務完全不同的目的。上面的例子只是網頁內容的唯一標識符可能被使用的衆多用途之一。有一個獨特的標識符對事物之間的關係很重要。
呀ID是唯一的,但一個類可以是唯一的太...
可以是是手術的短語。如果我告訴瀏覽器使用「foo」id
查找元素,一旦它找到該元素,它可以停止查找。如果我告訴它我需要類「bar」的元素,它必須搜索整個DOM才能找到它們。
錨定參數是一個很好的參數,我沒有想到:) +速度對我來說似乎並不重要,因爲文檔在客戶端的計算機上被解析 – Alex
- 1. 爲什麼$('#id')在id不存在的情況下返回true?
- 2. 爲什麼Rails隱藏id列的存在?
- 3. 爲什麼Magento在生成ID之後無法保存客戶?
- 4. Javascript:爲什麼getElementById(id)的元素仍然存在於js中?
- 5. 爲什麼模型ID不保存在集合中?
- 6. 爲什麼$(div#id)比$(#id)慢?
- 7. MongoDB爲什麼id是-1?
- 8. 爲什麼params [:id]是零?
- 9. Mono爲什麼存在?
- 10. 爲什麼Console.Out.WriteLine存在?
- 11. 爲什麼存在java.util.Scanner?
- 12. 爲什麼Microsoft.Office.Interop.Outlook.Excecption存在?
- 13. 爲什麼respondsToSelector:存在?
- 14. 爲什麼java.net.SocketInputStream不存在?
- 15. 爲什麼`display:table`存在?
- 16. 不存在爲什麼?
- 17. Java:爲什麼MaxPermSize存在?
- 18. 這是爲什麼存在?
- 19. silverlight爲什麼存在?
- 20. 爲什麼window.addEventListener存在?
- 21. 爲什麼eval()存在?
- 22. 爲什麼存在Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Equals()?
- 23. 爲什麼DBNull.Value存在
- 24. 爲什麼ActivePython存在?
- 25. 爲什麼`ScalaObject`存在?
- 26. 爲什麼Convert.ToInt32(DateTime)存在?
- 27. 爲什麼`DatabaseGeneratedOption.None`存在?
- 28. 爲什麼{[「abc」]:123}存在?
- 29. 爲什麼存在與RequestOptions
- 30. 爲什麼GCM ID在Android中過期?
我認爲downvoting w/o評論應該被禁用,除非你是10K + –
從維基百科:id屬性提供了一個元素的文件範圍的唯一標識符。這用於標識元素,以便樣式表可以更改其表示屬性,並且腳本可以更改,動畫化或刪除其內容或表示。附加在頁面的URL上,它爲元素提供了一個全局唯一的標識符,通常是頁面的一個子部分。例如,http://en.wikipedia.org/wiki/HTML#Attributes –
@MK中的ID「屬性」:我無法快速輸入,確定... –