Hvordan kan jeg vælge et element med flere klasser i jQuery?

Jeg vil vælge alle de elementer, der har de to klasser a og b.

<element class="a b">

Altså kun de elementer, der har både klasser.

Når jeg bruger $(".a, .b") giver det mig foreningen, men jeg vil have krydsningen.

Løsning

Hvis du kun vil matche elementer med begge klasser (et kryds, som en logisk AND), skal du blot skrive selektorerne sammen uden mellemrum imellem:

$('.a.b')

Rækkefølgen er ikke relevant, så du kan også bytte om på klasserne:

$('.b.a')

Så for at matche et div-element, der har ID a med klasserne b og c, skal du skrive:

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

(I praksis behøver du sandsynligvis ikke at være så specifik, og en ID- eller klasseselektor i sig selv er normalt nok: $('#a')).

Kommentarer (11)

Du kan gøre dette ved hjælp af funktionen filter():

$(".a").filter(".b")
Kommentarer (8)

Jeg vil blot nævne en anden sag med element:

F.eks. <div id="title1" class="A B C">

Bare skriv: Du skal bare skrive $("div#title1.A.B.C").

Kommentarer (0)