2010-02-08 2 views
62

Aus irgendeinem Grund habe ich diese Klassen genannt .main_sub1, .main_sub2 usw. Egal, warum ich .main .sub nicht haben kann.Element oder Klasse LIKE Selektor für jQuery?

Gibt es eine Möglichkeit mit jQuery, irgendwie in der Art und Weise ist es möglich, mit Attributen zu tun, um die Klassen zu bekommen enthalten main?

+1

Sie sagten es selbst; Klasse ist ein Attribut. –

Antwort

154

$("[class^=main]") Mit werden alle Elemente, deren Klassennamen beginnt mit 'main' wählen. Werfen Sie einen Blick auf jQuery docs about selectors, gibt es viele andere Variationen können Sie verwenden, zum Beispiel:

  • [class*=main] werden Elemente auswählen, deren Klassennamen enthält ‚main‘
  • [class~=main] wählt Elemente, deren Klassennamen hat die Wort 'main' (mit Leerzeichen getrennt)
  • [class$=main] Elemente auswählt, deren Klassennamen endet in 'main'
+0

Ah, natürlich Klasse ist ein Attribut für sich. Vielen Dank! –

+0

funktioniert das, wenn die Klasse durch die 'addClass'-Methode und nicht als Attribut zum Element hinzugefügt wurde? – ZX12R

+0

@ ZX12R ja, ab [jQuery Version 1.12/2.2] (https://api.jquery.com/addclass) – dlatikay

3

In diesem Fall behandle ich das Klassenattribut genau wie ein Standardattribut.

$("[class*=main]") 
13

Ja, Sie können einen Attributselektor verwenden, um bestimmte Werte für das Attribut class zu vergleichen.

$('[class^=main]') // class begins with "main" 
$('[class*=main]') // class contains "main" anywhere within it