使用jQuery选择多个类


222

我的外观很好,似乎无法找出如何在一个jQuery选择器语句中选择与某些类匹配的所有元素,例如:

$('.myClass', '.myOtherClass').removeClass('theclass');

关于如何实现这一目标的任何想法?唯一的其他选择是

$('.myClass').removeClass('theclass');
$('.myOtherClass').removeClass('theclass');

但是我正在使用很多类来执行此操作,因此需要大量代码。

Answers:


402

这应该工作:

$('.myClass, .myOtherClass').removeClass('theclass');

您必须在$()的第一个参数中全部添加多个选择器,否则,您将为jQuery提供要在其中搜索的上下文,这不是您想要的。

与CSS中的操作相同。


3
如果仅当每个元素都具有所有指定的类时才想匹配该怎么办?
IsmailS 2011年

12
好吧,我得到了这个stackoverflow.com/q/1041344/148271。基本上,我将必须加入所有选择器进行交集。赞$(".myClass.myOtherClass")
IsmailS 2011年

有关CSS分组的更多信息:W3C“分组”
skrounge 2013年

@wal:在指向两个类时,在CSS中也必须使用逗号。没有逗号的话,.myOtherClass它是在内部的.myClass
geekuality,2014年

这个答案不能回答问题,这样您就可以做一个OR !!!不和!
Mahmoud Khateeb 2015年


25

我用 $('.myClass.myOtherClass').removeClass('theclass');


34
这是如果HTML元素具有多个类,并且您只想为所有这些类删除该元素的类。其他示例将使用逗号分隔的任何类从任何元素中删除该类。仅当我的HTML元素同时具有两者时,您的示例才会起作用,例如<div class="myClass myOtherClass theclass">
Kezzer 2011年

0
// Due to this Code ): Syntax problem.    
$('.myClass', '.myOtherClass').removeClass('theclass'); 

根据jQuery文档:https : //api.jquery.com/multiple-selector/

什么时候可以通过这种方式选择多个类别:

jQuery(“selector1, selector2, selectorN”) // double Commas. // IS valid.
jQuery('selector1, selector2, selectorN') // single Commas. // Is valid.

通过将所有选择器括在单个“ ...”或双逗号“ ...”中

因此,在您的情况下,调用多个类的正确方法是:

$('.myClass', '.myOtherClass').removeClass('theclass'); // your Code // Invalid.
$('.myClass , .myOtherClass').removeClass('theclass');  // Correct Code // Is valid.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.