几个月前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'来指示。对于我来说,这对开发人员来说似乎更容易阅读,而不是“组件头部触摸隐藏的圆顶”。 –