Javascript 用于精确类名的Css选择器

Javascript 用于精确类名的Css选择器,javascript,css,css-selectors,Javascript,Css,Css Selectors,我正在尝试使用css选择器查询确切的类名 考虑一下这个html <div class="My class1">Some long text</div> <div class="My class1 234">Some long text2</div> <div class="My class1">Some long text3</div> <div class="My class1 haha">Some long

我正在尝试使用css选择器查询确切的类名

考虑一下这个html

<div class="My class1">Some long text</div>
<div class="My class1 234">Some long text2</div>
<div class="My class1">Some long text3</div>
<div class="My class1 haha">Some long text2</div>
一些长文本
一些长文本2
一些长文本3
一些长文本2
现在我只想看一节课“我的班级”…而忽略“我的班级234”或“我的班级哈哈”

查询$$('div.My class1')提供了上述所有4个参数。 注意:我正在试用firebug控制台

如何在此处指定确切的类名,以便仅获取该特定类

谢谢

jQuery等于选择器:


元素中的类定义由空格分隔,因此您的第一个元素实际上同时具有“My”和“class1”两个类

如果您使用的是Mootools,则可以使用以下工具:

$$("div.My.class1:not(div.234):not(div.haha)")
$("div.My.class1").not("div.234").not("div.haha");
Mootools中的示例:

参考:

如果您使用的是jQuery,则可以使用以下内容:

$$("div.My.class1:not(div.234):not(div.haha)")
$("div.My.class1").not("div.234").not("div.haha");
jQuery中的示例:

参考:

这两个示例基本上检索具有“My”和“class1”类的所有元素,然后删除任何具有“234”或“haha”类的“div”元素。

属性选择器语法 对于直接CSS,它是:

[class='My class1']
对于大多数javascript框架,如jQuery、MooTools等,它将与用于直接CSS的选择器字符串相同。


关键的一点是使用属性选择器来完成,而不是直接通过类名本身进行选择。
类=
(只有等号)将只选择与以下字符串完全匹配的字符串。如果您还需要捕获
class1 My
,那么您还需要为
[class='class1 My']
选择。这将涵盖仅应用这两个类的两种情况(无论html中的顺序如何)。

这两种答案是否符合您的要求?若否,原因为何?反馈很重要。为什么你认为OP在使用jQuery?特别是考虑到最后一行不是jQuery。老实说,我不知道哪个框架/类由
$
表示。jQuery是最常见的,在mootools中也可以使用,请参见
[class='My class1']