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.
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 Standard # interface-treewalker |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- 作成するメソッド:
Document.createTreeWalker()
- 関連インターフェイス:
NodeFilter
,NodeIterator