このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
TreeWalker
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
TreeWalker オブジェクトは、文書のサブツリーのノードおよびその位置を表します。
TreeWalker は document オブジェクトの Document.createTreeWalker() メソッドを使用して作成可能です。
プロパティ
このインターフェイスが継承するプロパティはありません。
TreeWalker.root読取専用-
TreeWalkerを作成したときに指定したルートノードを表すNodeを返します。 TreeWalker.whatToShow読取専用-
提供しなければならない
Nodeの型を表す定数で構成されるビットマスクであるunsigned longを返します。一致しないノードはスキップされますが、その子は関連があれば含まれます。使用できる値は以下のとおりです。定数 数値 説明 NodeFilter.SHOW_ALL4294967295(unsigned longの最大値)すべてのノードを表示します。 NodeFilter.SHOW_ATTRIBUTE非推奨;2属性の Attrノードを表示します。これはルートとしてAttrを含むTreeWalkerを作成する場合に限り、意味があります。この場合は、反復処理や走査処理の最初の位置に属性ノードが現れることを意味します。属性はほかのノードの子ではありませんので、文書ツリーを走査処理するときは出現しません。NodeFilter.SHOW_CDATA_SECTION非推奨;8CDATASectionノードを表示します。NodeFilter.SHOW_COMMENT128Commentノードを表示します。NodeFilter.SHOW_DOCUMENT256Documentノードを表示します。NodeFilter.SHOW_DOCUMENT_FRAGMENT1024DocumentFragmentノードを表示します。NodeFilter.SHOW_DOCUMENT_TYPE512DocumentTypeノードを表示します。NodeFilter.SHOW_ELEMENT1Elementノードを表示します。NodeFilter.SHOW_ENTITY非推奨;32旧式、もう使えません。 NodeFilter.SHOW_ENTITY_REFERENCE非推奨;16旧式、もう使えません。 NodeFilter.SHOW_NOTATION非推奨;2048旧式、もう使えません。 NodeFilter.SHOW_PROCESSING_INSTRUCTION64ProcessingInstructionノードを表示します。NodeFilter.SHOW_TEXT4Textノードを表示します。 TreeWalker.filter読取専用-
関連するノードを選択するために使用した
NodeFilterを返します。 TreeWalker.currentNode-
TreeWalkerの現在の位置のNodeです。
メソッド
このインターフェイスが継承しているメソッドはありません。
メモ:
TreeWalker のコンテキストでは、 whatToShow と filter 引数で決定される論理ビューにノードが存在する場合、ノードは可視状態となります。(ノードが画面上に表示されているかどうかは関係ありません)。
TreeWalker.parentNode()-
現在の
Nodeを文書内の順序で最初の可視状態である祖先ノードに移動して、発見したノードを返します。また、現在のノードをこの位置に移動します。該当するノードがない、あるいはオブジェクト生成時に定義したルートノードより前にある場合は、nullを返して現在のノードは変更しません。 TreeWalker.firstChild()-
現在の
Nodeを現在のノードで最初の可視状態である子に移動して、発見した子ノードを返します。また、現在のノードをこの子ノードに移動します。該当する子がない場合は、nullを返して現在のノードは変更しません。なお、firstChild()が返すノードは、TreeWalkerオブジェクトのインスタンス化時に設定されたwhatToShowの値に依存することに注意してください。次のような HTML ツリーを想定して、whatToShowをNodeFilter.SHOW_ALLに設定してfirstChild()を呼び出すと、HTMLDivElementオブジェクトではなくTextノードが返されます。html<!DOCTYPE html> <html> <head><title>Demo</title> <body> <div id="container"></div> </body> </html>jslet walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL); let node = walker.firstChild(); // nodeName: "#text"しかし、次のようにすることができます。
jslet walker = document.createTreeWalker( document.body, NodeFilter.SHOW_ELEMENT, ); let node = walker.firstChild(); // nodeName: "DIV"同じことが
nextSibling(),previousSibling(),firstChild(),lastChild()でも言えます。 TreeWalker.lastChild()-
現在の
Nodeを現在のノードで最後の可視状態である子に移動して、発見した子ノードを返します。また、現在のノードをこの子ノードに移動します。該当する子がない場合は、nullを返して現在のノードは変更しません。 TreeWalker.previousSibling()-
現在の
Nodeを前の兄弟に移動して、発見した兄弟ノードを返します。該当するノードがない場合は、nullを返して現在のノードは変更しません。 TreeWalker.nextSibling()-
現在の
Nodeを次の兄弟に移動して、発見した兄弟ノードを返します。該当するノードがない場合は、nullを返して現在のノードは変更しません。 TreeWalker.previousNode()-
現在の
Nodeを文書内の順序で前の可視状態であるノードに移動して、発見したノードを返します。また、現在のノードをこの位置に移動します。該当するノードがない、あるいはオブジェクト生成時に定義したルートノードより前にある場合は、nullを返して現在のノードは変更しません。 TreeWalker.nextNode()-
現在の
Nodeを文書内の順序で次の可視状態であるノードに移動して、発見したノードを返します。また、現在のノードをこの位置に移動します。該当するノードがない場合は、nullを返して現在のノードは変更しません。
仕様書
| Specification |
|---|
| DOM> # interface-treewalker> |
ブラウザーの互換性
Loading...
関連情報
- 作成するメソッド:
Document.createTreeWalker() - 関連インターフェイス:
NodeFilter,NodeIterator