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

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

var 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 の定義
廃止された 初期定義

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応Chrome 完全対応 1Edge 完全対応 ありFirefox 完全対応 3.5IE 完全対応 9Opera 完全対応 9Safari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 9Safari iOS 完全対応 3Samsung Internet Android 完全対応 あり
expandEntityReferences
非推奨非標準
Chrome 完全対応 1Edge 完全対応 12Firefox 未対応 3.5 — 21IE 完全対応 9Opera 完全対応 9Safari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 未対応 4 — 21Opera Android 完全対応 9Safari iOS 完全対応 3Samsung Internet Android 完全対応 あり
filterChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 3.5IE 完全対応 9Opera 完全対応 9Safari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 9Safari iOS 完全対応 3Samsung Internet Android 完全対応 あり
pointerBeforeReferenceNode
実験的
Chrome 完全対応 1Edge 完全対応 17Firefox 完全対応 3.5IE 未対応 なしOpera 完全対応 ありSafari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 17Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 3Samsung Internet Android 完全対応 あり
referenceNode
実験的
Chrome 完全対応 1Edge 完全対応 17Firefox 完全対応 3.5IE 未対応 なしOpera 完全対応 ありSafari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 17Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 3Samsung Internet Android 完全対応 あり
rootChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 3.5IE 完全対応 9Opera 完全対応 9Safari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 9Safari iOS 完全対応 3Samsung Internet Android 完全対応 あり
whatToShowChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 3.5IE 完全対応 9Opera 完全対応 9Safari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 9Safari iOS 完全対応 3Samsung Internet Android 完全対応 あり
detach
非推奨非標準
Chrome 完全対応 1Edge 完全対応 12Firefox 未対応 3.5 — 22IE 完全対応 9Opera 完全対応 9Safari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 未対応 4 — 22Opera Android 完全対応 9Safari iOS 完全対応 3Samsung Internet Android 完全対応 あり
nextNodeChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 3.5IE 完全対応 9Opera 完全対応 9Safari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 9Safari iOS 完全対応 3Samsung Internet Android 完全対応 あり
previousNodeChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 3.5IE 完全対応 9Opera 完全対応 9Safari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 9Safari iOS 完全対応 3Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
未対応  
未対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。

関連情報

ドキュメントのタグと貢献者

タグ: 
このページの貢献者: yyss, fscholz, khalid32, ethertank, RobinEgg
最終更新者: yyss,