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