TreeWalker
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Please take two minutes to fill out our short survey.
TreeWalker
オブジェクトは、文書のサブツリーのノードおよびその位置を表します。
TreeWalker
は document
オブジェクトの Document.createTreeWalker()
メソッドを使用して作成可能です。
プロパティ
このインターフェイスが継承するプロパティはありません。
TreeWalker.root
読取専用-
TreeWalker
を作成したときに指定したルートノードを表すNode
を返します。 TreeWalker.whatToShow
読取専用-
提供しなければならない
Node
の型を表す定数で構成されるビットマスクであるunsigned long
を返します。一致しないノードはスキップされますが、その子は関連があれば含まれます。使用できる値は以下のとおりです。定数 数値 説明 NodeFilter.SHOW_ALL
4294967295
(unsigned long
の最大値)すべてのノードを表示します。 NodeFilter.SHOW_ATTRIBUTE
非推奨;2
属性の Attr
ノードを表示します。これはルートとしてAttr
を含むTreeWalker
を作成する場合に限り、意味があります。この場合は、反復処理や走査処理の最初の位置に属性ノードが現れることを意味します。属性はほかのノードの子ではありませんので、文書ツリーを走査処理するときは出現しません。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
旧式、もう使えません。 NodeFilter.SHOW_ENTITY_REFERENCE
非推奨;16
旧式、もう使えません。 NodeFilter.SHOW_NOTATION
非推奨;2048
旧式、もう使えません。 NodeFilter.SHOW_PROCESSING_INSTRUCTION
64
ProcessingInstruction
ノードを表示します。NodeFilter.SHOW_TEXT
4
Text
ノードを表示します。 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 |
ブラウザーの互換性
関連情報
- 作成するメソッド:
Document.createTreeWalker()
- 関連インターフェイス:
NodeFilter
,NodeIterator