幾個月前this article指出,實際上可以從網站開發中一起避免類。數據屬性的CSS選擇器比類選擇器快嗎?
我的問題是,數據選擇器與類選擇器相比有多高效?
一個簡單的例子是比較data-component='something'
元素與class='class1 class2 something anotherClass'
元素的查詢。
[data-<attr>='<value>']
選擇器將檢查整個值與應分割的類字符串。考慮到這一點,數據屬性應該更快。
因此,爲了改進問題,對於CSS來說,使用類選擇器還是數據選擇器會更好?從javascript的角度來看,jQuery("[data-component='something']")
會比jQuery(".something")
更有效率嗎?
我不知道是什麼樣的網絡編程與那篇文章的詭辯相關,但我確信它與我所做的事無關。另外,如果你仔細閱讀那篇文章,我懷疑它的作者會像對待類一樣關心'data-'屬性;畢竟,它們都代表着同樣的「罪行」。 – Pointy
至於你的問題,一些[jsperf](http://jsperf.com)測試可能有助於回答這個問題。我懷疑任何具有'querySelectorAll()'的現代瀏覽器都不會有任何困難。 – Pointy
我越想到數據屬性和樣式,而不是添加類,我越喜歡它們。例如,塊元素(如搜索框)被隱藏的事實可以通過data-state ='hidden'來指示。對於我來說,這對開發人員來說似乎更容易閱讀,而不是「組件頭部觸摸隱藏的圓頂」。 –