NodeIterator#

Wstęp#

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

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

Iterator węzłowy odzwierciedla płaską listą węzłów, przefiltrowaną zgodnie z porządkiem drzewa. W uproszczeniu: element (element1) poprzedza kolejny element (element2) na uporządkowanej liście tylko wtedy, gdy węzeł wskazywany przez element1 poprzedza węzeł wskazywany przez element2 w drzewie węzłów. Z racji tego, że lista jest płaska, można się po niej poruszać jedynie w przód lub w tył.

Obiekt typu NodeIterator operuje bezpośrednio na drzewie węzłów, w zasadzie to zapamiętuje on jedynie pewne kluczowe parametry (jak np. pozycję wskaźnika czy węzeł referencyjny), dlatego każda zmiana węzła w takim drzewie może mieć wpływ na stan iteratora. Uwaga będzie istotna szczególnie w przypadku usuwania węzłów z kolekcji iteratora.

Interfejs NodeIterator 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.

Iterator węzłowy można utworzyć za pomocą metody:

Właściwości NodeIterator#

NazwaOpis
NodeIterator.filterZwraca filtr skojarzony z danym iteratorem węzłowym.
NodeIterator.pointerBeforeReferenceNodeZwraca wartość true jeśli pozycja wskaźnika znajduje się przed węzłem referencyjnym w danym iteratorze węzłowym, w przeciwnym razie wartość false.
NodeIterator.referenceNodeZwraca węzeł referencyjny w danym iteratorze węzłowym.
NodeIterator.rootZwraca korzeń skojarzony z danym iteratorem węzłowym.
NodeIterator.whatToShowZwraca maskę bitową skojarzoną z danym iteratorem węzłowym.

Metody NodeIterator#

NazwaOpis
NodeIterator.detach()Nie robi niczego sensownego.
NodeIterator.nextNode()Zwraca węzeł następujący względem węzła referencyjnego w danym iteratorze węzłowym, który spełnia kryteria filtracji.
NodeIterator.previousNode()Zwraca węzeł poprzedzający względem węzła referencyjnego w danym iteratorze węzłowym, 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 NodeIterator # {
	[SameObject] readonly attribute Node root;
	readonly attribute Node referenceNode;
	readonly attribute boolean pointerBeforeReferenceNode;
	readonly attribute unsigned long whatToShow;
	readonly attribute NodeFilter? filter;

	Node? nextNode();
	Node? previousNode();

	void detach();
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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