一个类的jQuery选择器,后跟一个空格,然后是另一个类

时间:2011-06-14 08:19:45

标签: jquery jquery-selectors

我有这样的标记:

<div class="classA classB">the content</div>

我想要的是一个选择器,它选择以classA开头的所有div,我这样做了:

$("div[class^='classA'");

但是因为我(例如)也有类似的类:

<div class="classAsuffix">

那个选择器也会抓住这个div,我不希望这样。

所以,我想要一个选择器,它将为我提供所有以classA开头的div,但之后会有一个空格,所以一般来说:给我所有的div都有“classA(space)someOtherClass”。

我希望我对我的要求很清楚。谢谢你的帮助!

哦,忘了提一下:我试过了:

$("div[class^='classA ']") but it doesn't work...

5 个答案:

答案 0 :(得分:4)

您的值周围的引号应该是双引号,而不是单引号。 实际上,它似乎并不重要。所以:

var matches = $('div[class^="classA "]');

...... works with the latest jQuery。它与具有class属性的元素匹配,以 "classA "开头,因此与div class="classA"不匹配,但与div class="classA classB"匹配。但是您的版本带有单引号works too。我尝试过Chrome 11(Linux&amp; Windows),Firefox 3.6(Linux),Firefox 4.0.1(Windows),IE6,IE7,IE9,Opera 11(Linux和Windows)以及Safari 5(Windows)。我已经尝试过jQuery 1.6.1(上面的链接是“最新的”)和jQuery 1.5.2。所有人都给出了相同的结果,只找到了我想要的东西。

但是 - 这有点偏离主题 - 我会退后一步,看看为什么会出现这种需求。这是非常不寻常的,这表明可能有更好的方法......但是,如果不知道潜在的需求,我可能会错在那里。

答案 1 :(得分:0)

你可以合并两个陈述。

$("div[class^='classA'].classA");

在这种情况下,您将检查以classA开头的类,以及该元素是否具有此类。但这也是有效的class="classASuffix classA classB"class="classA"

答案 2 :(得分:0)

这应该让所有DIV都有class="classA classB"

$("div[class^='classA'][class$='classB']");

选择类属性STARTS WITH'classA'和ENDS WITH'classB'

的所有DIV

http://jsfiddle.net/9dQ9Z/

答案 3 :(得分:0)

你可以使用$('div [class~ =“classA”]'); 请参阅以下链接以获取解释: http://api.jquery.com/attribute-contains-word-selector/

答案 4 :(得分:0)

这会选择同时具有classA和classB的所有div,但不会选择只有classAsuffix和classB的div:

$( 'div.classA.classB');