我有这样的标记:
<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...
答案 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答案 3 :(得分:0)
你可以使用$('div [class~ =“classA”]'); 请参阅以下链接以获取解释: http://api.jquery.com/attribute-contains-word-selector/
答案 4 :(得分:0)
这会选择同时具有classA和classB的所有div,但不会选择只有classAsuffix和classB的div:
$( 'div.classA.classB');