2012-06-02 59 views
0

我一直不喜欢使用ID和类作为选择器,原因很明显:ID是唯一的,类与样式有关,应该能够在不影响网站功能的情况下进行更改。HTML5 JQuery选择器

我以前喜欢

<div rel="foo">...</div> 

    $("[rel=foo]").click(..); 

什么是HTML5这样做的正确方法创建的东西呢?我受到角色的诱惑,但看起来,这个属性具有特定的含义和目的。

我刚刚学习HTML5,非常感谢您的帮助!

+1

我认为你的假设“类与风格有关”是错误的。从[HTML 5规范](http://www.w3.org/TR/html5/global-attributes.html#classes):“..authors鼓励使用描述内容性质的值,而不是描述所需内容呈现的值。“类改变了一个元素的语义,他们不 - 固有地 - 描述它的外观。一个元素的视觉风格是它的意义的副产品(其中只有一个是它的类),而不是相反。 –

回答

1

您可以为您的元素添加任意数量的类。而当你选择时,你可以使用一个类作为选择器。

<div class="class1 class2 foo"> 

选择,

$(".foo").click(..); 

你不需要定义foo类你的CSS

+0

我确实喜欢你的观点。我不喜欢使用对特定元素非常特殊的类,以至于他们对其他用户无用,例如class =“button-on-signup-form”,我在这么多网站看到。我更喜欢class =“col notepad private”,或者其他的东西,表示我定义的“这种东西”的各种各样的东西。将“可折叠”添加到它并将其捆绑到功能上并不感觉不妥。我会采纳这个想法。 – KateYoak

0

尝试不使用rel,请改为选择title。然后你可以使用这样的jQuery:

$('div [title =“foo”]')。click(...);

使用titleidclass是正确的HTML5。另外,我认为你应该重新使用类和ID作为选择器 - 它非常方便,高效和简单。

+0

尽管我不喜欢使用标题(它具有特定的用处),但是我查阅了rel并且您是对的 - 它更糟糕:“REL属性用于给出由超文本链接描述的关系,并描述链接目的地与包含超文本锚点的文档之间的关系 - 因此除非存在HREF,否则不能使用REL。REL的值是空格分隔的关系值列表。我将坚持使用这里所有答案所描述的类。谢谢! – KateYoak

0

内不要违背似地接受的解决方案在这里:使用属性。

尝试详细说明一个命名约定,该约定映射页面和组件在这些页面中的结构。