最近我一直想知道最好的方法是在多个元素上执行javascript操作.
我看到的方式有两种可能性:
<div class="validation-required"></div><div data-validation-required></div>在我的IDE(使用R#的Visual Studio 2012)中,如果我使用第一种方法,我会收到警告,说我不应该使用未定义的css类.这让我相信这可能不是最好的主意.然而,这是我最经常使用的方法,尽管这可能只是我们可以使用数据属性前几天的遗物.
所以我的问题非常简单,我应该采用哪种方式简单地"标记"元素以进行进一步处理?
谢谢你的回答
PS:我意识到这个问题可能容易产生主观意见,但我希望在现代浏览器中使用什么有共识.
PPS:我已经对这个问题进行了搜索,但大多数问题都与性能有关,这不是我对一次性情况的首要关注.
Jan*_*roň 12
根据W3C
数据 -*
自定义数据属性旨在将自定义数据存储为页面或应用程序的私有数据,因为没有更合适的属性或元素.这些属性不适用于独立于使用该属性的站点的软件.
class属性在HTML中有几个角色:作为样式表选择器(当作者希望将样式信息分配给一组元素时).用于通用用户代理处理.
如果使用class属性,则可以从本机getElementsByClassName搜索和classList对象中进行切换,添加和删除类.没什么 请参阅Oliver Moran的评论getElementsByAttributeValue,你需要迭代.
另一方面,如果需要存储多个数据,则可以使用dataset属性.
因此,如果您想要搜索或者数据是否会影响元素的外观,我会使用class.如果您需要存储多个数据,data则更合适.
Ber*_*rty 11
测试这些东西的最佳方法是在jsperf.com上搜索测试套件
以下是您感兴趣的内容:http: //jsperf.com/id-vs-class-vs-data-attribute
最有效的选择器是使用类.
这可能是因为类被更多地用于选择的结果,所以浏览器会优化更多?
