Tworząc dodatek Torrent Hash2Magnet dla Greasemonkey stanąłem przed potrzebom odnalezienie najstarszego niewspólnego przodka w przypadku wyparsowania kilku elementów z dokumentu.
Problem wygląda następująco. Jest dokument z rozbudowaną hierarchią i głęboko osadzonymi 2 elementami: #a3 i #b3
<html> <head></head> <body> <ul id="r1"> <li id="r2"> <ul id="r3"> <li id="a1"> <ul id="a2"> <li id="a3" class="child"> </li> </ul> </li> <li id="b1"> <ul id="b2"> <li id="b3" class="child"> </li> </ul> </li> </ul> </li> </ul> </body> </html>
Używając biblioteki jQuery parsuję interesujące mnie elementy z klasą .child chcę znaleźć dla każdego z osobna wspomnianego wcześniej NNP, czyli najstarszego rodzica, który jednocześnie nie jest rodzicem drugiego elementu.
$(function(){ $('.child') .parents() .not( $('.child') .not($(this)) .parents()) .last();});
Skrypt najpierw parsuje dokument w poszukiwaniu elementów z klasą .child w obrębie elementu body, następnie pobiera wszystkich przodków, aż do korzenia dokumentu, wyklucza rodziców pozostałych elementów z puli (wszystkie z .child bez this) i wybiera ostatni (najstarszy) element z puli.
Brak komentarzy:
Prześlij komentarz