htmljquerycssjquery-selectorshtmlelements

How can I select an element with multiple classes in jQuery?


I want to select all the elements that have the two classes a and b.

<element class="a b">

So, only the elements that have both classes.

When I use $(".a, .b") it gives me the union, but I want the intersection.


Solution

  • If you want to match only elements with both classes (an intersection, like a logical AND), just write the selectors together without spaces in between:

    $('.a.b')
    

    The order is not relevant, so you can also swap the classes:

    $('.b.a')
    

    So to match a div element that has an ID of a with classes b and c, you would write:

    $('div#a.b.c')
    

    (In practice, you most likely don't need to get that specific, and an ID or class selector by itself is usually enough: $('#a').)