检查选择器是否具有某组类

时间:2010-04-19 14:59:00

标签: jquery class jquery-selectors conditional

我正试图检查一个选择器是否有一组特定的类。

.hasClass()只能检查选择器是否有一个类。并且.is()选择器可以查找多个类,但如果选择器至少有一个类,则返回true。

但我不想找到一种方法来检查一个选择器是否同时具有这两个类,并且只有当两个类都执行动作时才会这样做。

任何指针?

5 个答案:

答案 0 :(得分:4)

您可以简单列出类名:

.foo.bar.bar

此选择器匹配包含所有类 foo bar baz 的任何元素。

答案 1 :(得分:2)

is()函数应该适合你。

  • 如果你有一个元素并且你写了 是(“。foo”)然后它将返回true 如果foo存在。
  • 如果你写的是(“。foo.bar”)那么它 如果foo AND bar,则返回true 本。
  • 如果你写的是(“。foo,.bar”)那么它 如果foo OR bar,则返回true 本。

答案 2 :(得分:2)

我认为$.is('.class1.class2')会做你想要的。例如,$('#foo').is('.a.b')对于以下div返回true,但$('#foo').is('.a.c')将返回false:

<div id="foo" class="a b"></div>

这不是你想要的吗?

答案 3 :(得分:1)

$('div.class1.class2')没有做你想做的事情(即找到任何带有class1和class2的div)

答案 4 :(得分:1)

你可以这样做:

var $blah = $("blah");
if($blah.hasClass("test") && $blah.hasClass("othertest")){
 // something
}

...或使用选择器

$(".test.othertest");