使用数据属性在类或样式中存储数据。哪个更好?

时间:2011-10-26 12:55:25

标签: javascript css html5

我有一些元素应该同时保存一些数据,并应用一些样式。

让我说我有一个格子4 x 4,像这样:

http://jsfiddle.net/tM6ze/1/

我需要存储每个单元格的坐标并通过javascript使用它们,但也可以单独设置它们的样式。

我知道我可以像这样在类中保存数据:

<div class="cell row-3 col-3"></div>

并在js

中解析它们

我也知道我可以在css中设置单元格样式:

.grid .cell[data-row="3"][data-col="3"]{...some style...}

然而,我认为这两种方法都比替代方案慢(从数据属性和类中获取数据)。

哪一个更有效? 或者哪种情况最适合什么情况?

我想我可以在元素中包含类和数据(比如小提琴),但这是最好的方法吗?

1 个答案:

答案 0 :(得分:2)

我倾向于使用数据,因为class有多个值,必须要解析或匹配。

此外,您使用类的方法相当于黑客攻击。你正在存储数据;为什么不应该使用数据属性?

另外,data-属性只是一种新的HTML属性,即使浏览器不支持HTML5,您也应该可以操作它们(尽管工作量稍多)。

最后,像jQuery这样的库(框架,等等)都有内置的方法来读取data-属性,如果你将来要使用这些属性的话,会极大地简化你的代码。

没有什么错误的以你的方式使用类;这没有必要。数据标记更合适,更清晰,更易于操作。