--- title: treeWalker slug: Web/API/treeWalker tags: - API - DOM translation_of: Web/API/TreeWalker --- <div>{{APIRef("DOM")}}</div> <p><strong><code>TreeWalker</code></strong> オブジェクトは、文書のサブツリーのノード及びその位置を表します。</p> <p><code>TreeWalker</code> は <a href="/ja/docs/Web/API/document"><code>document</code></a> オブジェクトの {{domxref("Document.createTreeWalker()")}} メソッドを使用して作成可能です。</p> <h2 id="Properties" name="Properties">プロパティ</h2> <p><em>このインターフェイスが継承するプロパティはありません。</em></p> <dl> <dt>{{domxref("TreeWalker.root")}} {{readonlyInline}}</dt> <dd><code>TreeWalker</code> を作成したときに指定したルートノードを表す {{domxref("Node")}} を返します。</dd> <dt>{{domxref("TreeWalker.whatToShow")}} {{readonlyInline}}</dt> <dd>提供しなければならない {{domxref("Node")}} の型を表す定数で構成されるビットマスクである <code>unsigned long</code> を返します。一致しないノードはスキップされますが、その子は関連があれば含まれます。使用できる値は以下のとおりです: <table class="standard-table"> <tbody> <tr> <td class="header">定数</td> <td class="header">数値</td> <td class="header">説明</td> </tr> <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> {{deprecated_inline}}</td> <td><code>2</code></td> <td>属性の {{domxref("Attr")}} ノードを表示します。これはルートとして {{domxref("Attr")}} を含む {{domxref("TreeWalker")}} を作成する場合に限り、意味があります。この場合は、イテレーションやトラバーサルの最初の位置に属性ノードが現れることを意味します。属性はほかのノードの子ではありませんので、ドキュメントツリーをトラバーサルするときは出現しません。</td> </tr> <tr> <td><code>NodeFilter.SHOW_CDATA_SECTION</code> {{deprecated_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> {{deprecated_inline}}</td> <td><code>32</code></td> <td>{{domxref("Entity")}} ノードを表示します。これはルートとして {{domxref("Entity")}} を含む {{domxref("TreeWalker")}} を作成する場合に限り、意味があります。この場合は、イテレーションやトラバーサルの最初の位置に {{domxref("Entity")}} ノードが現れることを意味します。エンティティはドキュメントツリーの一部ではありませんので、ドキュメントツリーをトラバーサルするときは出現しません。</td> </tr> <tr> <td><code>NodeFilter.SHOW_ENTITY_REFERENCE</code> {{deprecated_inline}}</td> <td><code>16</code></td> <td>{{domxref("EntityReference")}} ノードを表示します。</td> </tr> <tr> <td><code>NodeFilter.SHOW_NOTATION</code> {{deprecated_inline}}</td> <td><code>2048</code></td> <td>{{domxref("Notation")}} ノードを表示します。これはルートとして {{domxref("Notation")}} を含む {{domxref("TreeWalker")}} を作成する場合に限り、意味があります。この場合は、イテレーションやトラバーサルの最初の位置に {{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("TreeWalker.filter")}} {{readonlyInline}}</dt> <dd>関連するノードを選択するために使用した {{domxref("NodeFilter")}} を返します。</dd> <dt>{{domxref("TreeWalker.expandEntityReferences")}} {{readonlyInline}}{{obsolete_inline}}</dt> <dd>{{domxref("EntityReference")}} を破棄するとき、同時にサブツリー全体も破棄するかを示す {{domxref("Boolean")}} です。</dd> <dt>{{domxref("TreeWalker.currentNode")}}</dt> <dd><code>TreeWalker</code> の現在の位置の {{domxref("Node")}} です。</dd> </dl> <h2 id="Methods" name="Methods">メソッド</h2> <p><em>このインターフェイスが継承するメソッドはありません。</em></p> <div class="note"> <p><em>TreeWalker は可視状態の DOM ノードのみ考慮します。</em></p> </div> <dl> <dt>{{domxref("TreeWalker.parentNode()")}}</dt> <dd>現在の {{domxref("Node")}} を文書内の順序で最初の<em>可視状態である</em>祖先ノードに移動して、発見したノードを返します。また、現在のノードをこの位置に移動します。該当するノードがない、あるいはオブジェクト生成時に定義した<em>ルートノード</em>より前にある場合は、<code>null</code> を返して現在のノードは変更しません。</dd> <dt>{{domxref("TreeWalker.firstChild()")}}</dt> <dd>現在の {{domxref("Node")}} を現在のノードで最初の<em>可視状態である</em>子に移動して、発見した子ノードを返します。また、現在のノードをこの子ノードに移動します。該当する子がない場合は、<code>null</code> を返して現在のノードは変更しません。</dd> <dt>{{domxref("TreeWalker.lastChild()")}}</dt> <dd>現在の {{domxref("Node")}} を現在のノードで最後の<em>可視状態である</em>子に移動して、発見した子ノードを返します。また、現在のノードをこの子ノードに移動します。該当する子がない場合は、<code>null</code> を返して現在のノードは変更しません。</dd> <dt>{{domxref("TreeWalker.previousSibling()")}}</dt> <dd>現在の {{domxref("Node")}} を前の兄弟に移動して、発見した兄弟ノードを返します。該当するノードがない場合は、<code>null</code> を返して現在のノードは変更しません。</dd> <dt>{{domxref("TreeWalker.nextSibling()")}}</dt> <dd>現在の {{domxref("Node")}} を次の兄弟に移動して、発見した兄弟ノードを返します。該当するノードがない場合は、<code>null</code> を返して現在のノードは変更しません。</dd> <dt>{{domxref("TreeWalker.previousNode()")}}</dt> <dd>現在の {{domxref("Node")}} を文書内の順序で前の<em>可視状態である</em>ノードに移動して、発見したノードを返します。また、現在のノードをこの位置に移動します。該当するノードがない、あるいはオブジェクト生成時に定義した<em>ルートノード</em>より前にある場合は、<code>null</code> を返して現在のノードは変更しません。</dd> <dt>{{domxref("TreeWalker.nextNode()")}}</dt> <dd>現在の {{domxref("Node")}} を文書内の順序で次の<em>可視状態である</em>ノードに移動して、発見したノードを返します。また、現在のノードをこの位置に移動します。該当するノードがない場合は、<code>null</code> を返して現在のノードは変更しません。</dd> </dl> <h2 id="Specification" name="Specification">仕様書</h2> <table class="standard-table"> <tbody> <tr> <th scope="col">仕様書</th> <th scope="col">策定状況</th> <th scope="col">コメント</th> </tr> <tr> <td>{{SpecName('DOM WHATWG', '#interface-treewalker', 'TreeWalker')}}</td> <td>{{Spec2('DOM WHATWG')}}</td> <td><code>expandEntityReferences</code> プロパティを削除。</td> </tr> <tr> <td>{{SpecName('DOM2 Traversal_Range', 'traversal.html#Traversal-TreeWalker', 'TreeWalker')}}</td> <td>{{Spec2('DOM2 Traversal_Range')}}</td> <td>初期定義</td> </tr> </tbody> </table> <h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2> <p>{{Compat("api.TreeWalker")}}</p> <h2 id="See_also" name="See_also">関連情報</h2> <ul> <li>作成するメソッド: {{domxref("Document.createTreeWalker()")}}</li> <li>関連インターフェイス: {{domxref("NodeFilter")}}, {{domxref("NodeIterator")}}</li> </ul>