2010-05-21 23 views
6

Angenommen, ich habe ein Element wie folgt aus:Wie Klassennamen erhalten jquery mit

<div id="dv" class="red green blue">Something Here !!</div> 

ich benutzten:

alert($('#dv').attr('class')); 

Aber es gibt mir alle drei zur gleichen Zeit, ich brauche individuell wahrscheinlich in einem Array gespeichert.

Wie bekomme ich jeden dieser Klassennamen mit jquery? Sollte einfach sein, oder?

Antwort

14
var classNames = $('#dv').attr('class').split(' '); 

, wenn Sie nur, wenn ein Element wissen müssen besitzt eine Klasse, die Sie verwenden möchten

if($('#dv').is('.green')){ 
    alert('its green!'); 
} 

oder

if($('#dv').hasClass('green')){ 
    alert('its green!'); 
} 

was eine abgeleitete Funktion ist. Halten Sie die Aufmerksamkeit auf die unterschiedlichen Schreibweisen

„.className“ und nur ‚classname‘

3

Die Klasse ist ein Attribut, so dass Sie var classname=$("#dv").attr("class") tun können, dann Sie es in ein Array mit var array=classname.split(" ");

+0

i meine Antwort aktualisiert haben, überprüfen Sie plz –

+0

aktualisiert die Antwort – mck89

1

Verwendung spalten kann diese

alert($('#dv').attr('class')); 
+0

Ich habe meine Antwort aktualisiert, Scheck plz –

8

Es gibt ein paar Möglichkeiten, auf Ihr Ziel abhängig (tun Sie tatsächlich ein Array benötigen, könnte eine schnellere Methode sein!).

$('#dv').attr('class').split(' ') == ['red', 'green', 'blue'] 

Um die Zeichenkette verwenden .attr() zu erhalten:

ein Array der Klassen .attr() und .split() benutzen Sie

$('#dv').attr('class') == 'red green blue' 

für eine Klasse verwenden, um zu überprüfen .hasClass():

$('#dv').hasClass('red') == true 
+0

+1 für 'hasClass', was wahrscheinlicher ist, was das OP braucht, wenn er versucht, das Klassenattribut in ein Array aufzuteilen. –

+0

@Andy E Kopf - In Anbetracht der ID ist "DV", und die Klassen sind "rot grün blau" Ich frage mich, ob das Klassenattribut als Speicher für RGB-Werte verwendet wird ?? Wie auch immer, +1, seit Nick seinen normalen Standard durch Abdeckung der Basen erfüllt hat. – user113716

1

mit attr() Sie können beliebige Attribute festlegen oder abrufen. Wenn Sie mehr als eine Klasse haben, können Sie die Zeichenkette teilen, die attr Ihnen mit split("separator") zurückgibt. Split gibt Ihnen ein Array zurück. $.each(array, function(i, data){}) können Sie etwas für jeden Wert in einem Array tun. Wenn Sie das zusammen ist dies das Ergebnis:

$.each($("#dv").attr("class").split(" "), function(i, data) { 
    alert(data) 
}) 

Und hier eine Demo mit Ihrem Code: http://jsfiddle.net/Cq5JD/

Verwandte Themen