2010-05-12 6 views
6

Bei einem div wie:jQuery attr - mehrere Klassen zurückkehren nicht nur die erste

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

Ich möchte abe zu bedienen jQuerys $(div).attr('class');

alle Klassen zu finden, aber die JQUERY .attr gibt nur Widget zurück. Gibt es eine Möglichkeit mit JQUERY alle für das Element definierten Klassen zurückzugeben?

Dank

+2

jQuery 'attr' sollte die gesamte Zeichenfolge zurückgeben. Sind Sie sicher, dass Ihr Code korrekt ist? –

+0

Ihr Jungs rockt - thxs – AnApprentice

Antwort

15

Was Sie derzeit haben funktioniert, here's a quick demo:

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

Etwas im Auge zu behalten ist, dass .attr() Renditen, die auf das erste verglichene Element Attribut, aus der Dokumentation:

Es ist wichtig zu beachten, dass die .attr() Methode den Attributwert erhält für nur das erste Element in dem abgestimmten Satz. Um den Wert für jedes Element einzeln zu erhalten, müssen wir uns auf ein Schleifenkonstrukt wie die Methode .each() von jQuery verlassen.

So zum Beispiel, so etwas wie dieses:

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

Würde nur "widget" alarmieren, denn das ist die Klasse des ersten Anpassungselement.

2

.attr ('Klasse') gibt alle für das Element definierten Klassen zurück. Der visuelle Stil wird nicht nur durch die Klassen definiert, sondern auch durch die CSS-Eigenschaften. Sie könnten auch für sie mit CSS ('param-name')

5

Nick erwähnt mit .each() ...

... aber abfragen wollen. ..eine einfache Weise könnte über .split läuft sein():

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

... dann sind Sie nur der Umgang mit einem plain old Javascript String Array

Verwandte Themen