2015-10-14 37 views
1

我需要选择与多个selectors.For例如HTML DOM元素,我想选择具有类A或B和类d或C.JQuery的多个AND OR选择

Litteraly所有DOM:

((A OR B) AND (C OR D)) 

我如何在JQuery中做到这一点?

$([.A,.B][.C,.D]) 

任何帮助:

我已经没有成功尝试这样做?

+0

你基本上要求的元素有4个字母类别 –

回答

4

你可以使用你在哪里得到所有的满足所述第一标准的项目一个复合语句,然后筛选出只是符合第二个标准的项目。如果有很多可能的排列,这可以扩展一些。

$(".A, .B").filter(".C, .D"); 
+0

如果你只是想要一个选择器,这是一个非常好的答案。然而,如果你想要一个if语句,你可以使用is函数。如果($('。a,.b')。是('。c,.d')){alert('匹配a或b类有c或d类');} –

+0

@PhilCook - using'。是()'这种方式假定只有一种可能的利益结果。请记住,jQuery对象是集合,并且可以容纳许多匹配的对象,所以'.is()'只会告诉你至少第一个集合是否匹配'“.C,.D”'选择器,它不会告诉你是哪一个或如何操作的比赛集合。 – jfriend00

3

如果这是真的那么简单,你可以只是做笛卡尔乘积,并列出各种可能性:

$('.A.C, .A.D, .B.C, .B.D'); 
+1

25秒之前...你赢了:D –

+0

Halas它不是那么简单。我的例子有4个类,但在我的实际案例中,我可以有超过10个,并添加动态 – user2733521

2

你可能的结果是:

  • .a.c
  • .a.d
  • .b.c
  • .b.d

因此:

$('.a.c, .a.d, .b.c, .b.d')