Ich möchte den Klassennamen mit jQuery erhalten
Und wenn es eine ID hat
<div class="myclass"></div>
javascript
jquery
X10nD
quelle
quelle
parents()
.this.className
arbeitet ohne jquery (würde"myclass"
im obigen Beispiel zurückkehren)Antworten:
Nachdem Sie das Element über andere Mittel als seine Klasse als jQuery-Objekt erhalten haben, dann
sollte den Trick machen. Für die ID verwenden
.attr('id')
.Wenn Sie sich in einem Ereignishandler oder einer anderen jQuery-Methode befinden, bei der das Element der reine DOM-Knoten ohne Wrapper ist, können Sie Folgendes verwenden:
Beide sind Standard-DOM-Methoden und werden in allen Browsern gut unterstützt.
quelle
if(className.indexOf(' ') !== -1){throw new Error('Uh-oh! More than one class name!');}
.attr('class')
und damit kombinieren, könnenif(className.indexOf('Class_I_am_Looking_For') > = 0)
Sie leicht überprüfen, ob eine bestimmte Klasse vorhanden ist, und trotzdem mehrere Klassen verarbeiten.if(className.indexOf('Class_I_am_Looking_For') > = 0)
wird auch passen"This_Is_Not_the_Class_I_am_Looking_For"
Es ist besser zu verwenden,
.hasClass()
wenn Sie überprüfen möchten, ob ein Element ein bestimmtes hatclass
. Dies liegt daranclass
, dass die Überprüfung eines Elements nicht trivial ist.Beispiel:
Wo:
Mit können
.hasClass()
wir testen, ob derdiv
die Klasse hatdivhover
.quelle
.is('.divhover')
Seien Sie vorsichtig, vielleicht haben Sie eine Klasse und eine Unterklasse.
Wenn Sie frühere Lösungen verwenden, haben Sie:
Wenn Sie also die Klassenauswahl haben möchten , gehen Sie wie folgt vor:
und du wirst haben
Wenn Sie nun alle Elemente auswählen möchten, die dieselbe Klasse haben, wie z. B. div oben:
das bedeutet
Update 2018
OR kann mit Vanille-Javascript in 2 Zeilen implementiert werden:
quelle
'.'+$('#id').attr('class').split(/[ \n\r\t\f]+/).join('.')
, dass Leerzeichen, Tabulator, LF, CR und FF Klassen trennen dürfen. (.split()
Akzeptiert auch RegExps.)'.'+$('#id').attr('class').split(/\s+/).join('.')
wäre prägnanter, nicht wahr? Oder würde das zu etwas passen, an das ich nicht denke?.attr('class').trim().split(...)
Dies dient dazu, die zweite Klasse mithilfe eines Elements in mehrere Klassen zu unterteilen
quelle
Sie können einfach verwenden,
var className = $('#id').attr('class');
quelle
Wenn Sie
<div>
eine habenid
:...Du kannst es versuchen:
Wenn Sie
<div>
nur eine habenclass
, können Sie versuchen:quelle
Wenn Sie die Split-Funktion verwenden, um die Klassennamen zu extrahieren, müssen Sie mögliche Formatierungsschwankungen ausgleichen, die zu unerwarteten Ergebnissen führen können. Zum Beispiel:
produziert
Ich denke, Sie sind besser dran, einen regulären Ausdruck zu verwenden, um eine Reihe zulässiger Zeichen für Klassennamen abzugleichen. Zum Beispiel:
produziert
Der reguläre Ausdruck ist wahrscheinlich nicht vollständig, aber hoffentlich verstehen Sie meinen Standpunkt. Dieser Ansatz verringert die Möglichkeit einer schlechten Formatierung.
quelle
Um die Whitestock-Antwort zu vervollständigen (die beste, die ich gefunden habe), habe ich Folgendes getan:
Für "myclass1 myclass2" lautet das Ergebnis ".myclass1 .myclass2".
quelle
Sie können den Klassennamen auf zwei Arten erhalten:
ODER
quelle
Mit Javascript
Mit jQuery
ODER
quelle
Wenn Sie den Klassennamen nicht kennen, aber die ID kennen, können Sie dies versuchen:
Dann nenne es mit:
quelle
Wenn Sie Klassen von div erhalten möchten und dann überprüfen möchten, ob eine Klasse vorhanden ist, verwenden Sie diese einfach.
z.B;
quelle
Versuch es
HTML
jQuery
quelle
Wenn wir ein einzelnes
div
Element haben oder das erste Element möchten , können wir es verwenden$('div')[0].className
sonst brauchen wir einesid
von diesem Elementquelle
Wenn wir einen Code haben:
Um den Klassennamen mit jQuery zu übernehmen, können wir eine einfache Plugin-Methode definieren und verwenden:
oder
Die Verwendung der Methode wird sein:
Wir müssen beachten, dass im Gegensatz zur nativen Methode element.className eine Liste von Klassen zurückgegeben wird, die nur die erste Klasse der angehängten Klassen zurückgibt. Da dem Element häufig mehr als eine Klasse zugeordnet ist, empfehle ich, nicht diese native Methode, sondern element.classlist oder die oben beschriebene Methode zu verwenden.
Die erste Variante gibt eine Liste von Klassen als Array zurück, die zweite als Zeichenfolge - Klassennamen, die durch Leerzeichen getrennt sind:
Ein weiterer wichtiger Hinweis ist, dass sowohl die Methode als auch die jQuery-Methode
Gibt nur die Klassenliste des ersten Elements zurück, das vom jQuery-Objekt erfasst wurde, wenn wir einen allgemeineren Selektor verwenden, der auf viele andere Elemente verweist. In einem solchen Fall müssen wir das Element markieren, wir möchten seine Klassen erhalten, indem wir einen Index verwenden, z
Es hängt auch davon ab, was Sie mit diesen Klassen tun müssen. Wenn Sie nur nach einer Klasse in der Klassenliste des Elements mit dieser ID suchen möchten, sollten Sie einfach die Methode "hasClass" verwenden:
wie in den Kommentaren oben erwähnt. Wenn Sie jedoch möglicherweise alle Klassen als Selektor verwenden müssen, verwenden Sie diesen Code:
Das Ergebnis wird sein:
und Sie könnten es zum Beispiel dazu bringen, dynamisch eine bestimmte CSS-Regel zum Umschreiben zu erstellen.
Grüße
quelle
Das funktioniert auch.
quelle
Der beste Weg, um Klassennamen in Javascript oder JQuery zu erhalten
attr()
Die Attributfunktion wird verwendet, um Attribute abzurufen und festzulegen.quelle
Verwendung wie folgt: -
Wenn Sie diese Klasse mehrmals verwendet haben, verwenden Sie jeden Operator
quelle