我不知道将类添加到元素时会发生什么,我现在找不到任何相关信息,但我希望在幕后完成一些工作以检查是否没有任何关联的样式使用那个特定的类,所以我不建议这样做,因为这没有任何意义,因为这是该data-*
属性的设计目的。
我敢肯定,使用data-*
属性存储数据也比使用类更符合语法。
所以你有两个选择。
使用class
为元素应用样式而设计的,也可能在后台运行一些不必要的代码来检查样式。
或者使用data-*
旨在将此类数据存储在特定元素上的属性,并且可能不会在后台运行任何不必要的代码。
我确定我会选择选项 2。
更新
你可能会看到一些 JavaScript 框架在类中使用了一些数据,这些数据实际上并不应用任何样式,例如 angular.js,它们使用ng-binding
&ng-scope
类。但我很确定他们为这些数据使用一个类的唯一原因是,他们可以使用getElementsByClassName
.
您还可以使用 javascript 对象来跟踪此类内容,这是一个跟踪已单击元素的示例。
var clickedElements = [];
forEach -- allElements -- .addEventListener('click', function() {
clickedElements.push(this);
});
// ^ Here you would actually have to loop through the elements
// To apply the event Listener.
这样您就可以轻松地遍历所有元素,并且不会影响您的 DOM 内容。
这是不久前阅读的一篇文章的一小部分。
您是否曾经发现自己使用元素类名称或 rel 属性来存储任意元数据片段,其唯一目的是让您的 JavaScript 更简单?如果你有,那么我有一些令人兴奋的消息要告诉你!如果你还没有,并且你在想,哇,这真是个好主意!我恳请您立即摆脱这种想法并继续阅读。
来源:http ://html5doctor.com/html5-custom-data-attributes/