Czy istnieje sposób w jQuery, aby sprawdzić, czy jakiś rodzic, dziadek, pradziadek ma klasę?
Mam strukturę znaczników, która sprawiła, że w kodzie robię takie rzeczy:
$(elem).parent().parent().parent().parent().hasClass('left')
Jednak ze względu na czytelność kodu chciałbym uniknąć tego rodzaju rzeczy. Czy istnieje sposób, aby powiedzieć, że „któryś z rodziców / dziadków / pradziadków ma tę klasę”?
Używam jQuery 1.7.2.
javascript
jquery
html
jquery-selectors
jquery-1.7
crmpicco
źródło
źródło
Odpowiedzi:
źródło
.length
przypomnienia , chociaż praktyka traktowania jako wartości zgodnej z prawdą jest dość płodna w JS, jest o wiele jaśniejsza i łatwiejsza do zrozumienia.length > 0
Istnieje wiele sposobów filtrowania przodków elementów.
Uwaga ,
closest()
metoda zawiera sam element podczas sprawdzania selektora.Alternatywnie, jeśli masz unikalny selektor pasujący
$elem
np. Do#myElem
, możesz użyć:Jeśli chcesz dopasować element zależny od jednej z jego klas nadrzędnych tylko w celu stylizacji, po prostu użyj reguły CSS :
źródło
Is there any way in jQuery to check if any parent,...
,closest()
czek na samego elementu, więc to nie jest tak naprawdę odpowiedzi na pytanie, PO mogłaby chcieć explecitely wykluczyć samego elementu, więc ya, odpowiedź była w użyciu.parents()
Możesz użyć
parents
metody z określonym.class
selektorem i sprawdzić, czy któraś z nich do niego pasuje:źródło