2010-02-08 13 views
62

Per qualsiasi motivo ho queste classi chiamate .main_sub1, .main_sub2 ecc. Non importa perché non posso avere .main .sub.Selettore di classe o elemento LIKE per jQuery?

C'è un modo con jQuery, un po 'come nel modo in cui è possibile fare con gli attributi, per ottenere le classi contenenti main?

+1

L'hai detto tu stesso; la classe è un attributo. –

risposta

154

Utilizzando $("[class^=main]") selezionerà tutti gli elementi il ​​cui nome di classe inizia con 'main'. Date un'occhiata a jQuery docs about selectors, ci sono un sacco di altre varianti che è possibile utilizzare, ad esempio:

  • [class*=main] selezionerà gli elementi il ​​cui nome di classe contiene 'main'
  • [class~=main] selezionerà gli elementi il ​​cui nome di classe ha la parola 'principale' (delimitato da spazi)
  • [class$=main] selezionerà elementi il ​​cui nome classe termina in 'principale'
+0

Ah, ovviamente la classe è un attributo in sé. Grazie! –

+0

funziona quando la classe è stata aggiunta all'elemento con il metodo 'addClass' e non come un attributo? – ZX12R

+0

@ ZX12R sì, a partire da [jQuery versione 1.12/2.2] (https://api.jquery.com/addclass) – dlatikay

3

In questo caso, vorrei semplicemente trattare l'attributo di classe nello stesso modo in cui si esegue un attributo standard.

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

Sì, è possibile utilizzare un selettore di attributo per abbinare determinati valori per l'attributo class.

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