---
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>