我经常需要使用jquery一次选择多个元素...为此我通常只是为我想要选择的所有元素添加一个类,然后使用jquery按类选择。
这是一种不好的做法,还是应该使用类似html 5数据属性的内容?
答案 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规范在这里很有用:
钱报价:
自定义数据属性旨在存储私有的自定义数据 页面或应用程序,没有更合适的 属性或元素。
然后继续使用音乐网站的示例,该网站使用数据来包含音乐曲目的长度,以便进行排序。
似乎数据将被保留用于这些类型的用途与用作选择器的类/ ID。
这是另一篇有用的文章来思考这个主题: http://danwebb.net/2010/1/27/put-that-data-attribute-away-son-you-might-hurt-someone