Wie wähle ich das erste übergeordnete DIV mit jQuery aus?

Lesezeit: 2 Minuten

Benutzer-Avatar
Adam

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 das erste übergeordnete 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.

Danke

Benutzer-Avatar
Shef

Verwenden .closest() um den DOM-Baum bis zum angegebenen Selektor zu durchlaufen.

var classes = $(this).parent().closest('div').attr('class').split(' '); // this gets the parent classes.

  • parents("div") durchläuft und gibt alle übergeordneten Divs zurück, die Sie verwenden sollten .eq(0) danach, um sicherzustellen, dass es genau das zurückgibt, was Sie wollen

    – meo

    17. August 2011 um 7:44 Uhr

  • Denken Sie daran, dass die Verwendung besser für die Leistung ist .parents('div').eq(0) — die Verwendung dieses Purse-CSS-Selektors GEFOLGT von jQuery, um nur auf das erste Element zu filtern, wird Ihnen einen leichten Leistungsschub geben — siehe den Abschnitt “Zusätzliche Hinweise” auf der jQuery :eq doc

    – Noah Whitmore

    6. Februar 2014 um 7:45 Uhr


  • @NoahWhitmore Behoben. Gebraucht closest() es würde also nicht alle Eltern zurückgeben, aber die div Elternteil.

    – Shef

    6. Februar 2014 um 9:48 Uhr

Benutzer-Avatar
Tatu Ulmanen

Verwenden .closest()wodurch das erste Vorfahrenelement abgerufen wird, das mit dem angegebenen Selektor übereinstimmt 'div':

var classes = $(this).closest('div').attr('class').split(' ');

BEARBEITEN:

Wie @Shef bemerkte, .closest() gibt das aktuelle Element zurück, wenn es sich auch um ein DIV handelt. Um dies zu berücksichtigen, verwenden Sie .parent() Erste:

var classes = $(this).parent().closest('div').attr('class').split(' ');

  • .closest() passt sich selbst an, wenn $(this) ist ein DIV-Element.

    – Shef

    17. August 2011 um 7:37 Uhr

  • @Shef, das waren neue Informationen für mich, danke. Ich habe meine Antwort bearbeitet, um dies widerzuspiegeln.

    – Tatu Ulmanen

    17. August 2011 um 7:48 Uhr

  • könntest du einfach verwenden .parents("div").eq(0)

    – meo

    17. August 2011 um 8:03 Uhr

Dies wird übergeordnet, wenn es sich um ein div handelt. Dann wird es Klasse.

var div = $(this).parent("div");
var _class = div.attr("class");

  • @meo Das war die Frage.

    – Daniel Westen

    29. März 2013 um 19:51 Uhr

Benutzer-Avatar
Junaid Masood

zwei der besten Optionen sind

$(this).parent("div:first")

$(this).parent().closest('div')

und natürlich können Sie das Klassenattr finden

$(this).parent("div:first").attr("class")

$(this).parent().closest('div').attr("class")

und für Sie

$(this).parent("div:first").attr("class").split(' ')
$(this).parent().closest('div').attr("class").split(' ')

Halte es einfach!

var classes = $(this).parent('div').attr('class');

1220370cookie-checkWie wähle ich das erste übergeordnete DIV mit jQuery aus?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy