NodeIterator#

NodeIterator.nextNode()#

Metoda 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. Jeśli nie będzie takiego węzła to zwrócona zostanie wartość null.

Opis działania#

Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
var next_node = nodeIterator.nextNode();

gdzie poszczególne człony oznaczają:

Algorytm wywołania metody nextNode() nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:

  1. Zwróć wynik działania przejścia z kierunkiem następującym.

Szerszy opis działania metody nextNode() od strony teoretycznej umieściłem w podstawach iteratora węzłowego.

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<!DOCTYPE html>
<html>

<head>

	<script>

		function iterate(direct){

			var info1 = document.getElementById("info1");
			var info2 = document.getElementById("info2");
			var root = document.getElementById("box");
			var dir = "";
			var node = "";
			var nodeText = "";

			if (typeof iterator != "object"){

				iterator = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, null);

			}

			if (info1.textContent == ""){

				info1.innerHTML = "pointerBeforeReferenceNode: " + iterator.pointerBeforeReferenceNode
					+ "<br><br>" + "root: " + iterator.root
					+ "<br>" + "referenceNode: " + iterator.referenceNode
					+ "<br>" + "referenceNode.textContent: " + iterator.referenceNode.textContent;

			}

			if (direct == "next"){
				node = iterator.nextNode();
				dir = "nextNode()";
			}

			if (direct == "previous"){
				node = iterator.previousNode();
				dir = "previousNode()";
			}

			if (node){
				nodeText = node.textContent;
			}

			var result = "pointerBeforeReferenceNode: " + iterator.pointerBeforeReferenceNode
				+ "<br><br>" + "referenceNode: " + iterator.referenceNode
				+ "<br>" + "referenceNode.textContent: " + iterator.referenceNode.textContent
				+ "<br><br>" + dir + ": " + node
				+ "<br>" + dir + ".textContent: " + nodeText;

			info2.innerHTML = result;

		}

	</script>

</head>

<body>

	<div id="box">
		<p>Pierwszy akapit w kontenerze DIV.</p>
		<P>Drugi akapit w kontenerze DIV.</p>
		<P>Trzeci akapit w kontenerze DIV.</P>
	</div>

	<p>Kliknij konkretny przycisk by iterować przez kolejne węzły w kontenerze DIV.</p>
	<input type="button" value="nextNode()" onclick="iterate('next')">
	<input type="button" value="previousNode()" onclick="iterate('previous')">

	<p style="color: blue;">Szczegółowe informacje dla utworzonego iteratora:</p>
	<p id="info1"></p>

	<p style="color: blue;">Szczegółowe informacje dla kolejnych przejść iteratora:</p>
	<p id="info2"></p>

</body>

</html>

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
interface NodeIterator {
	Node? nextNode();
}

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

NodeIterator (H1) NodeIterator.nextNode() (H2) Opis działania (H3) Składnia Web IDL (H3) Specyfikacje i inne materiały (H3)