我见过许多例子(包括最喜欢的Twitter的引导程序),其中各种API使用$("[data-something]")
而不是按类$(".something")
选择
尽管如此,我试图找到有关这两种不同选择器之间性能的信息。令我感到惊讶的是,许多性能测试确实发现这些选择器在大多数现代浏览器上同样快,所以我决定my own test
我现在真的很困惑,我不知道我的测试是否做错了(不知何故?)还是我之前检查过的其他测试?
如果我在测试时做错了,或者这些测试是否正确,并且数据属性选择器实际上比常规类慢得多,那么是否可以提供更多信息?选择?
谢谢
答案 0 :(得分:4)
使用属性选择器时,性能可能会有所不同,具体取决于浏览器中的querySelector支持。 jQuery将回归到一个内置的库(称为SizzleJS),这个库要慢得多。
对类名的选择会更快,因为它总是使用所有常见浏览器通常支持的getElementsByClassName。
我看到它的方式,类与数据属性的用途不同。类将“分类”元素,以便可以正确设置样式并创建结构。
数据属性就是:数据。有时您需要在元素中存储其他数据。例如:
<table>
<tr data-id="4" data-category="1">
<td>Name</td>
<td>Email</td>
</tr>
</table>
请注意,由于同样的原因,我没有使用常规的“id”属性。