var classes = $(this).attr('class').split(' '); // this gets the current element classes
var classes = $(this).parent().attr('class').split(' '); // this gets the parent classes.
Der Elternteil in der obigen Situation ist ein Ankor.
Wenn ich den ersten übergeordneten DIV von $ (this) erhalten möchte, wie würde der Code aussehen?
var classes = $(this).div:parent().attr('class').split(' '); // just a quick try.
* Grundsätzlich möchte ich die Klassen des ersten übergeordneten DIV von $ (this) erhalten.
Vielen Dank
parents("div")
durchläuft und gibt alle übergeordneten Divs zurück, die Sie danach verwenden sollten.eq(0)
, um sicherzustellen, dass nur die gewünschte zurückgegeben wird.parents('div').eq(0)
Wenn Sie diesen von jQuery FOLGENDEN CSS-Selektor verwenden, um nur nach dem ersten Element zu filtern, erhalten Sie eine leichte Leistungssteigerung. Weitere Informationen finden Sie im Abschnitt "Zusätzliche Hinweise" in jQuery: eq docclosest()
damit nicht alle Eltern außer dendiv
Eltern zurückgegeben werden.Verwenden Sie
.closest()
diese Option, um das erste Vorfahrenelement abzurufen, das dem angegebenen Selektor entspricht'div'
:BEARBEITEN:
Wie @Shef bemerkt hat,
.closest()
wird das aktuelle Element zurückgegeben, wenn es zufällig auch ein DIV ist. Um dies zu berücksichtigen, verwenden Sie.parent()
zuerst:quelle
.closest()
wird sich selbst$(this)
anpassen, wenn es sich um ein DIV-Element handelt..parents("div").eq(0)
Dies wird Eltern, wenn es ein div ist. Dann wird es klasse.
quelle
Halte es einfach!
quelle
Zwei der besten Optionen sind
und natürlich finden Sie die Klasse attr von
quelle