Mam kod z wieloma podmenu, które mają tę samą nazwę klasy.W przeciwień stwie do jQuery's .Closest (Top/Far-Most?)
Oto struktura:
.menu
.sub-menu
.sub-menu
.sub-menu
.sub-menu
.sub-menu
.sub-menu
.elem
.elem
.sub-menu
Zauważ, że .sub-menu
mogą być nieskończone poziomy głębokości.
Jak to zrobić: po kliknięciu przycisku .elem
chcę przechodzić przez DOM do góry, aż osiągnięty zostanie najwyższy .sub-menu
i zastosować do niego styl. Jestem świadomy .closest()
i .parent()
i .find()
, ale nie mam pojęcia, czy jQuery ma taką funkcję, takie jak .topMost(selector)
?
Jedyny sposób, jaki mogę wymyślić to być może uruchomienie pętli i przejście przez .closest('.sub-menu')
nowego elementu, dopóki jego długość nie wyniesie zero (nie ma więcej rodziców z tą klasą, więc musi to być najwyższa pozycja). Uważam jednak, że powinno to być bardziej praktyczne podejście.
Możesz zmienić tytuł na bardziej odpowiedni, jeśli uważasz, że wyjaśni cel tego pytania przyszłym czytelnikom. –
Jestem z tym świetna. To, co googlełem. Po prostu napisałem to na przyszłość :) –
Jest to niepoprawne, jeśli find() jest przeciwieństwem najbliższego(). find() znajdzie wszystkie elementy w drzewie. Zatem przeciwieństwem najbliższego(), przeszukiwania w dół, byłoby find(). First(). –