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