Kieran Senior
Kieran Senior

Reputation: 18220

Selecting multiple classes with jQuery

I’ve had a good look and can’t seem to find out how to select all elements matching certain classes in one jQuery selector statement such as this:

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

Any ideas on how to achieve this? The only other option is to do

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

But I’m doing this with quite a few classes, so it requires much code.

Upvotes: 225

Views: 200304

Answers (4)

Rehan Shah
Rehan Shah

Reputation: 1627

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

According to jQuery documentation: https://api.jquery.com/multiple-selector/

When can select multiple classes in this way:

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

by enclosing all the selectors in a single '...' ' or double commas, "..."

So in your case the correct way to call multiple classes is:

$('.myClass', '.myOtherClass').removeClass('theclass'); // your Code // Invalid.
$('.myClass , .myOtherClass').removeClass('theclass');  // Correct Code // Is valid.

Upvotes: 0

Adman
Adman

Reputation: 335

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

Upvotes: 26

Ionuț G. Stan
Ionuț G. Stan

Reputation: 179119

Have you tried this?

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

Upvotes: 26

Erik Bakker
Erik Bakker

Reputation: 4589

This should work:

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

You must add the multiple selectors all in the first argument to $(), otherwise you are giving jQuery a context in which to search, which is not what you want.

It's the same as you would do in CSS.

Upvotes: 410

Related Questions