TreeWalker#

Wstęp#

Interfejs TreeWalker stanowi definicję Web IDL dla obiektu, który pozwala na przemieszczanie się pomiędzy węzłami spełniającymi określone cechy w danym drzewie węzłów. Jest to kolejny sposób pozwalający na swobodne przejście przez wszystkie węzły w drzewie węzłów. Obiekty typu TreeWalker są potocznie nazywane przemierzaczami drzewa # i skojarzone zostały z kilkoma podstawowymi zagadnieniami.

W przeszłości interfejs TreeWalker definiowany był w osobnej specyfikacji DOM Level 2 Traversal and Range (W3C). Obecnie został całkowicie przeniesiony do DOM4 z pewnymi modyfikacjami.

Przemierzacz drzewa jest odzwierciedleniem nowego drzewa węzłów, z węzłami przefiltrowanymi zgodnie z porządkiem drzewa. Z racji tego, że mamy tutaj do czynienia z drzewem, możemy się poruszać w przód, w tył, wybierać rodzica, dziecko, brata następującego lub brata poprzedzającego.

Obiekt typu TreeWalker operuje bezpośrednio na drzewie węzłów, w zasadzie to zapamiętuje on jedynie pewne kluczowe parametry (jak np. bieżący węzeł), ale w przeciwieństwie do iteratora węzłowego jest on bardziej odporny na zmiany związane z dodawaniem lub usuwaniem węzłów (szczegóły).

Interfejs TreeWalker nie dziedziczy z żadnego innego interfejsu w ogólnym ujęciu DOM, chociaż w środowisku JS obiekty implementujące ten interfejs będą dziedziczyły z prototypu najwyższego rzędu. Zachowanie takie jest czymś normalnym w przypadku języka ECMAScript.

Przemierzacz drzewa można utworzyć za pomocą metody:

Właściwości NodeIterator#

NazwaOpis
TreeWalker.currentNodeZwraca lub ustawia bieżący węzeł w danym przemierzaczu drzewa.
TreeWalker.filterZwraca filtr skojarzony z danym przemierzaczem drzewa.
TreeWalker.rootZwraca korzeń skojarzony z danym przemierzaczem drzewa.
TreeWalker.whatToShowZwraca maskę bitową skojarzoną z danym przemierzaczem drzewa.

Metody NodeIterator#

NazwaOpis
TreeWalker.firstChild()Zwraca pierwsze dziecko względem bieżącego węzła w danym przemierzaczu drzewa, które spełnia kryteria filtracji.
TreeWalker.lastChild()Zwraca ostatnie dziecko względem bieżącego węzła w danym przemierzaczu drzewa, które spełnia kryteria filtracji.
TreeWalker.nextNode()Zwraca węzeł następujący względem bieżącego węzła w danym przemierzaczu drzewa, który spełnia kryteria filtracji.
TreeWalker.nextSibling()Zwraca brata następującego względem bieżącego węzła w danym przemierzaczu drzewa, który spełnia kryteria filtracji.
TreeWalker.parentNode()Zwraca przodka względem bieżącego węzła w danym przemierzaczu drzewa, który spełnia kryteria filtracji.
TreeWalker.previousNode()Zwraca węzeł poprzedzający względem bieżącego węzła w danym przemierzaczu drzewa, który spełnia kryteria filtracji.
TreeWalker.previousSibling()Zwraca brata poprzedzającego względem bieżącego węzła w danym przemierzaczu drzewa, który spełnia kryteria filtracji.

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
interface TreeWalker #
	[SameObject] readonly attribute Node root;
	readonly attribute unsigned long whatToShow;
	readonly attribute NodeFilter? filter;
			 attribute Node currentNode;

	Node? parentNode();
	Node? firstChild();
	Node? lastChild();
	Node? previousSibling();
	Node? nextSibling();
	Node? previousNode();
	Node? nextNode();
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

TreeWalker (H1) Wstęp (H2) Właściwości NodeIterator (H3) Metody NodeIterator (H3) Składnia Web IDL (H3) Specyfikacje i inne materiały (H3)