2010-05-12 10 views
6

Dato un div come ad esempio:di jQuery attr - tornare più classi non solo il 1 °

<div class="widget block dock clock">yada yada</div> 

mi piacerebbe essere abe per usare jQuery $(div).attr('class');

per trovare tutte le classi, ma il Jquery .attr solo widget di ritorno. C'è un modo con JQUERY per restituire tutte le classi definite per l'elemento?

Grazie

+2

jQuery 'attr' dovrebbe restituire l'intera stringa. Sei sicuro che il tuo codice sia corretto? –

+0

Ragazzi, rock-thxs – AnApprentice

risposta

15

Quello che avete attualmente lavorerà, here's a quick demo:

alert($("div").attr("class"));​ //alerts "widget block dock clock" 

qualcosa da tenere a mente è che .attr() rendimenti che attribuiscono sulla primo elemento abbinato, dalla documentazione:

È importante notare che il metodo .attr() ottiene il valore dell'attributo solo per il primo elemento nel set corrispondente. Per ottenere il valore per ogni elemento singolarmente, dobbiamo fare affidamento su un costrutto di loop come il metodo .each() di jQuery.

Così, per esempio, qualcosa di simile:

<div class="widget">yada yada</div> 
<div class="widget block dock clock">yada yada</div>​ 

di avvertire solo "widget", dato che è la classe dell'elemento corrispondente prima.

2

.attr ('classe') restituirà tutte le classi definite per l'elemento. Lo stile visivo non è solo definito dalle classi ma anche dalle proprietà css. Si potrebbe anche voler eseguire il polling per loro con css ('param-name')

5

Nick menzionato utilizzando .each() ...

... ma. ..un modo più semplice potrebbe essere quella di iterare tramite .split():

(this).attr("class").split(" ") 

... poi si sono solo di fronte ad un plain old javascript string array

Problemi correlati