NodeIterator

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

構文

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

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

プロパティ

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

NodeIterator.root 読取専用
NodeIterator を作成したときに指定したルートノードを表す Node を返します。
NodeIterator.whatToShow 読取専用

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

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

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

メソッド

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

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

仕様

仕様書 策定状況 コメント
DOM
NodeIterator の定義
現行の標準 referenceNode および pointerBeforeReferenceNode プロパティを追加。
expandEntityReferences プロパティを削除。
detach() メソッドを no-op に変更。
previousNode() および nextNode() メソッドを例外が発生しないように変更。
Document Object Model (DOM) Level 2 Traversal and Range Specification
NodeIterator の定義
廃止された 初期定義

ブラウザー実装状況

BCD tables only load in the browser

関連情報