7

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

这是一种不好的做法,还是我应该改用 html 5 数据属性之类的东西?

4

4 回答 4

6

我会说对于不需要传递参数的一般参考是可以的。

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

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

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

于 2012-09-05T17:32:11.473 回答
3

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

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

于 2012-09-05T20:43:43.547 回答
2

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

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

您可以使用 jquery hass 属性选择器选择具有 data- 属性的元素。

$("[data-tooltip]").each(function(){
    generate_tooltip($(this));
});
于 2012-09-05T17:27:30.383 回答
2

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

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

金钱报价:

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

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

看起来 data- 是为这些类型的用途而保留的,而不是作为选择器的类/ID。

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

于 2012-09-05T17:49:23.027 回答