使用jquery使用类选择器或自定义属性选择器更好吗?

Yak*_*Yak 9 performance jquery jquery-selectors

我已经读过,最好选择使用"id"而不是"class"和jquery.但是,假设我在页面上有几个div,我需要用jquery选择并执行相同的操作.我不能选择"id"属性,因为它不再是唯一的.例如:

<div id="selectMeOnClick">
    ...
</div>
<div id="selectMeOnClick">
    ...
</div>
... many more divs ...
Run Code Online (Sandbox Code Playgroud)

这让我(我认为?)有两种选择:

使用类选择器

<div class="selectMeOnClick">
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

使用自定义属性选择器

<div data-select="selectMeOnClick">
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

我的问题是:这些真的是剩下两种选择吗?什么是最有效的解决方案?

谢谢

Ple*_*and 10

我会使用类选择器.使用自定义属性选择器将是:

  1. HTML无效.HTML仅允许某些命名属性出现在某些类型的元素上.
  2. .虽然jQuery可以.getElementsByClassName在你的第一个片段中使用native ,但它不能用于第二个片段.这可能会导致现代浏览器减速.

  • 对于#1 ... OPs示例在HTML 5中完全有效. (32认同)
  • @YankobeYak:我使用jQuery进行了性能测试.http://jsperf.com/attribute-versus-class-selector每个浏览器的类选择器比属性选择器快(百分之几).但在IE中,差异超过20%. (12认同)