Gibt es in jQuery eine Möglichkeit zu überprüfen, ob ein Elternteil, ein Großelternteil oder ein Urgroßelternteil eine Klasse hat?
Ich habe eine Markup-Struktur, die mich dazu veranlasst hat, solche Dinge im Code zu tun:
$(elem).parent().parent().parent().parent().hasClass('left')
Aus Gründen der Lesbarkeit des Codes möchte ich jedoch solche Dinge vermeiden. Gibt es eine Möglichkeit zu sagen, dass "ein Elternteil / Großelternteil / Urgroßelternteil diese Klasse hat"?
Ich verwende jQuery 1.7.2.
javascript
jquery
html
jquery-selectors
jquery-1.7
crmpicco
quelle
quelle
Antworten:
quelle
.length
als wahrer Wert in JS ziemlich produktiv ist, ist es viel klarer und leichter zu verstehen.length > 0
Es gibt viele Möglichkeiten, nach Elementvorfahren zu filtern.
Beachten Sie , dass die
closest()
Methode das Element selbst enthält, während Sie nach dem Selektor suchen.Wenn Sie einen eindeutigen Selektor haben , der
$elem
mit z. B. übereinstimmt ,#myElem
können Sie alternativ Folgendes verwenden:Wenn Sie ein Element, das von einer seiner Vorfahrenklassen abhängt, nur zu Stilzwecken abgleichen möchten, verwenden Sie einfach eine CSS-Regel :
quelle
Is there any way in jQuery to check if any parent,...
,closest()
Check für Element selbst so dass diese nicht wirklich Frage zu beantworten, könnte OP wollen explecitely das Element ausschließen selbst, so ya, Antwort war zu verwenden.parents()
Sie können die
parents
Methode mit dem angegebenen.class
Selektor verwenden und prüfen, ob eine davon mit dieser übereinstimmt:quelle