--- title: NodeIterator slug: Web/API/NodeIterator tags: - API - DOM translation_of: Web/API/NodeIterator ---
{{APIRef("DOM")}}

NodeIterator インターフェイスは、DOM のサブツリー内に存在するノードのリストのメンバーに対するイテレーターを表します。ノードは文書内に現れる順番で返されます。

構文

以下のように {{domxref("Document.createNodeIterator()")}} メソッドを用いると NodeIterator オブジェクトを作成することができます:

const nodeIterator = document.createNodeIterator(root, whatToShow, filter);

プロパティ

このインターフェイスが継承するプロパティはありません。

{{domxref("NodeIterator.root")}} {{readonlyInline}}
NodeIterator を作成したときに指定したルートノードを表す {{domxref("Node")}} を返します。
{{domxref("NodeIterator.whatToShow")}} {{readonlyInline}}

提供しなければならない {{domxref("Node")}} の型を表す定数で構成されるビットマスクである unsigned long を返します。一致しないノードはスキップされますが、その子は関連があれば含まれます。

使用できる値は以下のとおりです。

定数 数値 説明
NodeFilter.SHOW_ALL -1 (unsigned long の最大値) すべてのノードを表示します。
NodeFilter.SHOW_ATTRIBUTE {{obsolete_inline}} 2 属性の {{domxref("Attr")}} ノードを表示します。これはルートとして {{domxref("Attr")}} を含む {{domxref("NodeIterator")}} を作成する場合に限り、意味があります。この場合は、イテレーションやトラバーサルの最初の位置に属性ノードが現れることを意味します。属性はほかのノードの子ではありませんので、ドキュメントツリーをトラバーサルするときは出現しません。
NodeFilter.SHOW_CDATA_SECTION {{obsolete_inline}} 8 {{domxref("CDATASection")}} ノードを表示します。
NodeFilter.SHOW_COMMENT 128 {{domxref("Comment")}} ノードを表示します。
NodeFilter.SHOW_DOCUMENT 256 {{domxref("Document")}} ノードを表示します。
NodeFilter.SHOW_DOCUMENT_FRAGMENT 1024 {{domxref("DocumentFragment")}} ノードを表示します。
NodeFilter.SHOW_DOCUMENT_TYPE 512 {{domxref("DocumentType")}} ノードを表示します。
NodeFilter.SHOW_ELEMENT 1 {{domxref("Element")}} ノードを表示します。
NodeFilter.SHOW_ENTITY {{obsolete_inline}} 32 {{domxref("Entity")}} ノードを表示します。これはルートとして {{domxref("Entity")}} を含む {{domxref("NodeIterator")}} を作成する場合に限り、意味があります。この場合は、イテレーションやトラバーサルの最初の位置に {{domxref("Entity")}} ノードが現れることを意味します。エンティティはドキュメントツリーの一部ではありませんので、ドキュメントツリーをトラバーサルするときは出現しません。
NodeFilter.SHOW_ENTITY_REFERENCE {{obsolete_inline}} 16 {{domxref("EntityReference")}} ノードを表示します。
NodeFilter.SHOW_NOTATION {{obsolete_inline}} 2048 {{domxref("Notation")}} ノードを表示します。これはルートとして {{domxref("Notation")}} を含む {{domxref("NodeIterator")}} を作成する場合に限り、意味があります。この場合は、イテレーションやトラバーサルの最初の位置に {{domxref("Notation")}} ノードが現れることを意味します。エンティティはドキュメントツリーの一部ではありませんので、ドキュメントツリーをトラバーサルするときは出現しません。
NodeFilter.SHOW_PROCESSING_INSTRUCTION 64 {{domxref("ProcessingInstruction")}} ノードを表示します。
NodeFilter.SHOW_TEXT 4 {{domxref("Text")}} ノードを表示します。
{{domxref("NodeIterator.filter")}} {{readonlyInline}}
関連するノードを選択するために使用した {{domxref("NodeFilter")}} を返します。
{{domxref("NodeIterator.expandEntityReferences")}} {{readonlyInline}} {{deprecated_inline}}
{{domxref("EntityReference")}} を破棄するとき、同時にサブツリー全体も破棄するかを示す {{domxref("Boolean")}} です。
{{domxref("NodeIterator.referenceNode")}} {{readonlyInline}} {{experimental_inline}}
イテレーターが固定されている {{domxref("Node")}} を返します。
{{domxref("NodeIterator.pointerBeforeReferenceNode")}} {{readonlyInline}} {{experimental_inline}}
{{domxref("NodeIterator")}} が前に固定されるかを示す {{domxref("Boolean")}} フラグを返します。前に固定される場合は true、後に固定される場合は false になります。

メソッド

このインターフェイスが継承するメソッドはありません。

{{domxref("NodeIterator.detach()")}} {{obsolete_inline}}
この操作は no-op です。これは何も行いません。以前は NodeIterator を使用しなくなったことをエンジンに伝えていましたが、現在は不要です。
{{domxref("NodeIterator.previousNode()")}}
文書内で前の {{domxref("Node")}} を返します。ノードがない場合は null を返します。
{{domxref("NodeIterator.nextNode()")}}
文書内で次の {{domxref("Node")}} を返します。ノードがない場合は null を返します。

仕様

仕様書 策定状況 コメント
{{SpecName('DOM WHATWG', '#nodeiterator', 'NodeIterator')}} {{Spec2('DOM WHATWG')}} referenceNode および pointerBeforeReferenceNode プロパティを追加。
expandEntityReferences プロパティを削除。
detach() メソッドを no-op に変更。
previousNode() および nextNode() メソッドを例外が発生しないように変更。
{{SpecName('DOM2 Traversal_Range', 'traversal.html#Iterator-overview', 'NodeIterator')}} {{Spec2('DOM2 Traversal_Range')}} 初期定義

ブラウザー実装状況

{{Compat("api.NodeIterator")}}

関連情報