将html类属性用作javascript句柄是不好的做法

时间:2012-09-05 17:24:38

标签: html5 html class-attribute

我经常需要使用jquery一次选择多个元素...为此我通常只是为我想要选择的所有元素添加一个类,然后使用jquery按类选择。

这是一种不好的做法,还是应该使用类似html 5数据属性的内容?

4 个答案:

答案 0 :(得分:6)

我会说没有参数需要传递的一般参考可以。

即。所有.flashing元素都将应用闪光效果。结束。

当你开始使用多个类或“数据类”时,它会失控,例如class="flashing-15times onhoveronly"等......

一旦你需要开始传递参数或变量,你应该转向数据属性或其他OOP方法。

答案 1 :(得分:3)

这是一种很好的做法。这是class属性的用途。永远记住,class属性是HTML的语义分层的一部分,用于标记具有公共属性的对象组,而不是CSS的一部分。它是CSS选择器,提供HTML语义和CSS表示之间的绑定。标记具有公共属性的对象组正是您正在做的事情。

只需确保为要收集的对象集合使用有意义的名称,以便将jquery操作应用到。

答案 2 :(得分:2)

这曾经是标准的做法。但是,目前的标准方法是使用数据属性。例如,如果您想创建一个使某个元素具有工具提示的插件,您可以执行

<div data-tooltip="This is a div"></div>

您可以使用jquery hass attribute选择器选择具有数据属性的元素。

$("[data-tooltip]").each(function(){
    generate_tooltip($(this));
});

答案 3 :(得分:2)

我认为w3规范在这里很有用:

http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes

钱报价:

  

自定义数据属性旨在存储私有的自定义数据   页面或应用程序,没有更合​​适的   属性或元素。

然后继续使用音乐网站的示例,该网站使用数据来包含音乐曲目的长度,以便进行排序。

似乎数据将被保留用于这些类型的用途与用作选择器的类/ ID。

这是另一篇有用的文章来思考这个主题: http://danwebb.net/2010/1/27/put-that-data-attribute-away-son-you-might-hurt-someone