我经常需要使用 jquery 一次选择多个元素...为此,我通常只需将一个类添加到我想选择的所有元素中,然后使用 jquery 按类进行选择。
这是一种不好的做法,还是我应该改用 html 5 数据属性之类的东西?
我经常需要使用 jquery 一次选择多个元素...为此,我通常只需将一个类添加到我想选择的所有元素中,然后使用 jquery 按类进行选择。
这是一种不好的做法,还是我应该改用 html 5 数据属性之类的东西?
我会说对于不需要传递参数的一般参考是可以的。
即所有.flashing
元素都将应用闪光效果。结束。
当您开始使用多个类或“数据类”时,它会失控,例如class="flashing-15times onhoveronly"
,等等......
一旦需要开始传递参数或变量,就应该转向数据属性或其他 OOP 方法。
这是一个很好的练习。这就是类属性的用途。永远记住,class 属性是 HTML 语义分层的一部分,用于标记具有共同属性的对象组,而不是 CSS 的一部分。正是 CSS 选择器提供了 HTML 语义和 CSS 表示之间的绑定。标记具有共同属性的对象组正是您正在做的事情。
只需确保为要收集的对象集合使用有意义的名称,以将 jquery 操作应用到。
这曾经是执行此操作的标准方法。然而,目前的标准方法是使用数据属性。例如,如果您想制作一个使某个元素具有工具提示的插件,您可以这样做
<div data-tooltip="This is a div"></div>
您可以使用 jquery hass 属性选择器选择具有 data- 属性的元素。
$("[data-tooltip]").each(function(){
generate_tooltip($(this));
});
我认为 w3 规范在这里很有帮助:
金钱报价:
自定义数据属性旨在存储页面或应用程序私有的自定义数据,没有更合适的属性或元素。
然后它继续使用一个音乐网站的例子,该网站使用数据来包含音乐曲目的长度,以便进行排序。
看起来 data- 是为这些类型的用途而保留的,而不是作为选择器的类/ID。
这是另一篇关于该主题的有用文章:http: //danwebb.net/2010/1/27/put-that-data-attribute-away-son-you-might-hurt-someone