--- title: NodeIterator slug: Web/API/NodeIterator tags: - API - DOM translation_of: Web/API/NodeIterator --- <div>{{APIRef("DOM")}}</div> <p><span class="seoSummary"><strong><code>NodeIterator</code></strong> インターフェイスは、DOM のサブツリー内に存在するノードのリストのメンバーに対するイテレーターを表します。ノードは文書内に現れる順番で返されます。</span></p> <h2 id="Syntax" name="Syntax">構文</h2> <p>以下のように {{domxref("Document.createNodeIterator()")}} メソッドを用いると <code>NodeIterator</code> オブジェクトを作成することができます:</p> <pre class="syntaxbox notranslate">const <var>nodeIterator</var> = document.createNodeIterator(<var>root</var>, <var>whatToShow</var>, <var>filter</var>);</pre> <h2 id="Properties" name="Properties">プロパティ</h2> <p><em>このインターフェイスが継承するプロパティはありません。</em></p> <dl> <dt>{{domxref("NodeIterator.root")}} {{readonlyInline}}</dt> <dd><code>NodeIterator</code> を作成したときに指定したルートノードを表す {{domxref("Node")}} を返します。</dd> <dt>{{domxref("NodeIterator.whatToShow")}} {{readonlyInline}}</dt> <dd> <p>提供しなければならない {{domxref("Node")}} の型を表す定数で構成されるビットマスクである <code>unsigned long</code> を返します。一致しないノードはスキップされますが、その子は関連があれば含まれます。</p> <p>使用できる値は以下のとおりです。</p> <table class="standard-table"> <thead> <tr> <td class="header">定数</td> <td class="header">数値</td> <td class="header">説明</td> </tr> </thead> <tbody> <tr> <td><code>NodeFilter.SHOW_ALL</code></td> <td><code>-1</code> (<code>unsigned long</code> の最大値)</td> <td>すべてのノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_ATTRIBUTE</code> {{obsolete_inline}}</td> <td><code>2</code></td> <td>属性の {{domxref("Attr")}} ノードを表示します。これはルートとして {{domxref("Attr")}} を含む {{domxref("NodeIterator")}} を作成する場合に限り、意味があります。この場合は、イテレーションやトラバーサルの最初の位置に属性ノードが現れることを意味します。属性はほかのノードの子ではありませんので、ドキュメントツリーをトラバーサルするときは出現しません。</td> </tr> <tr> <td><code>NodeFilter.SHOW_CDATA_SECTION</code> {{obsolete_inline}}</td> <td><code>8</code></td> <td>{{domxref("CDATASection")}} ノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_COMMENT</code></td> <td><code>128</code></td> <td>{{domxref("Comment")}} ノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_DOCUMENT</code></td> <td><code>256</code></td> <td>{{domxref("Document")}} ノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_DOCUMENT_FRAGMENT</code></td> <td><code>1024</code></td> <td>{{domxref("DocumentFragment")}} ノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_DOCUMENT_TYPE</code></td> <td><code>512</code></td> <td>{{domxref("DocumentType")}} ノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_ELEMENT</code></td> <td><code>1</code></td> <td>{{domxref("Element")}} ノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_ENTITY</code> {{obsolete_inline}}</td> <td><code>32</code></td> <td>{{domxref("Entity")}} ノードを表示します。これはルートとして {{domxref("Entity")}} を含む {{domxref("NodeIterator")}} を作成する場合に限り、意味があります。この場合は、イテレーションやトラバーサルの最初の位置に {{domxref("Entity")}} ノードが現れることを意味します。エンティティはドキュメントツリーの一部ではありませんので、ドキュメントツリーをトラバーサルするときは出現しません。</td> </tr> <tr> <td><code>NodeFilter.SHOW_ENTITY_REFERENCE</code> {{obsolete_inline}}</td> <td><code>16</code></td> <td>{{domxref("EntityReference")}} ノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_NOTATION</code> {{obsolete_inline}}</td> <td><code>2048</code></td> <td>{{domxref("Notation")}} ノードを表示します。これはルートとして {{domxref("Notation")}} を含む {{domxref("NodeIterator")}} を作成する場合に限り、意味があります。この場合は、イテレーションやトラバーサルの最初の位置に {{domxref("Notation")}} ノードが現れることを意味します。エンティティはドキュメントツリーの一部ではありませんので、ドキュメントツリーをトラバーサルするときは出現しません。</td> </tr> <tr> <td><code>NodeFilter.SHOW_PROCESSING_INSTRUCTION</code></td> <td><code>64</code></td> <td>{{domxref("ProcessingInstruction")}} ノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_TEXT</code></td> <td><code>4</code></td> <td>{{domxref("Text")}} ノードを表示します。</td> </tr> </tbody> </table> </dd> <dt>{{domxref("NodeIterator.filter")}} {{readonlyInline}}</dt> <dd>関連するノードを選択するために使用した {{domxref("NodeFilter")}} を返します。</dd> <dt>{{domxref("NodeIterator.expandEntityReferences")}} {{readonlyInline}} {{deprecated_inline}}</dt> <dd>{{domxref("EntityReference")}} を破棄するとき、同時にサブツリー全体も破棄するかを示す {{domxref("Boolean")}} です。</dd> <dt>{{domxref("NodeIterator.referenceNode")}} {{readonlyInline}} {{experimental_inline}}</dt> <dd>イテレーターが固定されている {{domxref("Node")}} を返します。</dd> <dt>{{domxref("NodeIterator.pointerBeforeReferenceNode")}} {{readonlyInline}} {{experimental_inline}}</dt> <dd>{{domxref("NodeIterator")}} が前に固定されるかを示す {{domxref("Boolean")}} フラグを返します。前に固定される場合は <code>true</code>、後に固定される場合は <code>false</code> になります。</dd> </dl> <h2 id="Methods" name="Methods">メソッド</h2> <p><em>このインターフェイスが継承するメソッドはありません。</em></p> <dl> <dt>{{domxref("NodeIterator.detach()")}} {{obsolete_inline}}</dt> <dd>この操作は no-op です。これは何も行いません。以前は <code>NodeIterator</code> を使用しなくなったことをエンジンに伝えていましたが、現在は不要です。</dd> <dt>{{domxref("NodeIterator.previousNode()")}}</dt> <dd>文書内で前の {{domxref("Node")}} を返します。ノードがない場合は <code>null</code> を返します。</dd> <dt>{{domxref("NodeIterator.nextNode()")}}</dt> <dd>文書内で次の {{domxref("Node")}} を返します。ノードがない場合は <code>null</code> を返します。</dd> </dl> <h2 id="Specification" name="Specification">仕様</h2> <table class="standard-table"> <thead> <tr> <th scope="col">仕様書</th> <th scope="col">策定状況</th> <th scope="col">コメント</th> </tr> </thead> <tbody> <tr> <td>{{SpecName('DOM WHATWG', '#nodeiterator', 'NodeIterator')}}</td> <td>{{Spec2('DOM WHATWG')}}</td> <td><code>referenceNode</code> および <code>pointerBeforeReferenceNode</code> プロパティを追加。<br> <code>expandEntityReferences</code> プロパティを削除。<br> <code>detach()</code> メソッドを no-op に変更。<br> <code>previousNode()</code> および <code>nextNode()</code> メソッドを例外が発生しないように変更。</td> </tr> <tr> <td>{{SpecName('DOM2 Traversal_Range', 'traversal.html#Iterator-overview', 'NodeIterator')}}</td> <td>{{Spec2('DOM2 Traversal_Range')}}</td> <td>初期定義</td> </tr> </tbody> </table> <h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2> <p>{{Compat("api.NodeIterator")}}</p> <h2 id="See_also" name="See_also">関連情報</h2> <ul> <li>作成するメソッド: {{domxref("Document.createNodeIterator()")}}</li> <li>関連インターフェイス <ul> <li>{{domxref("NodeFilter")}}</li> <li>{{domxref("TreeWalker")}}</li> </ul> </li> </ul>