TreeWalker
TreeWalker オブジェクトは、文書のサブツリーのノードおよびその位置を表します。
TreeWalker は document オブジェクトの Document.createTreeWalker() (en-US) メソッドを使用して作成可能です。
プロパティ
このインターフェイスが継承するプロパティはありません。
TreeWalker.root読取専用-
TreeWalkerを作成したときに指定したルートノードを表すNodeを返します。 TreeWalker.whatToShow(en-US) 読取専用-
提供しなければならない
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(en-US) 読取専用-
関連するノードを選択するために使用した
NodeFilter(en-US) を返します。 TreeWalker.currentNode(en-US)-
TreeWalkerの現在の位置のNodeです。
メソッド
このインターフェイスが継承しているメソッドはありません。
メモ: TreeWalker のコンテキストでは、 whatToShow と filter 引数で決定される論理ビューにノードが存在する場合、ノードは可視状態となります。(ノードが画面上に表示されているかどうかは関係ありません)。
TreeWalker.parentNode()(en-US)-
現在の
Nodeを文書内の順序で最初の可視状態である祖先ノードに移動して、発見したノードを返します。また、現在のノードをこの位置に移動します。該当するノードがない、あるいはオブジェクト生成時に定義したルートノードより前にある場合は、nullを返して現在のノードは変更しません。 TreeWalker.firstChild()(en-US)-
現在の
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>js
let walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL); let node = walker.firstChild(); // nodeName: "#text"しかし、次のようにすることができます。
js
let walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT); let node = walker.firstChild(); // nodeName: "DIV"同じことが
nextSibling(),previousSibling(),firstChild(),lastChild()でも言えます。 TreeWalker.lastChild()(en-US)-
現在の
Nodeを現在のノードで最後の可視状態である子に移動して、発見した子ノードを返します。また、現在のノードをこの子ノードに移動します。該当する子がない場合は、nullを返して現在のノードは変更しません。 TreeWalker.previousSibling()(en-US)-
現在の
Nodeを前の兄弟に移動して、発見した兄弟ノードを返します。該当するノードがない場合は、nullを返して現在のノードは変更しません。 TreeWalker.nextSibling()(en-US)-
現在の
Nodeを次の兄弟に移動して、発見した兄弟ノードを返します。該当するノードがない場合は、nullを返して現在のノードは変更しません。 TreeWalker.previousNode()(en-US)-
現在の
Nodeを文書内の順序で前の可視状態であるノードに移動して、発見したノードを返します。また、現在のノードをこの位置に移動します。該当するノードがない、あるいはオブジェクト生成時に定義したルートノードより前にある場合は、nullを返して現在のノードは変更しません。 TreeWalker.nextNode()(en-US)-
現在の
Nodeを文書内の順序で次の可視状態であるノードに移動して、発見したノードを返します。また、現在のノードをこの位置に移動します。該当するノードがない場合は、nullを返して現在のノードは変更しません。
仕様書
| Specification |
|---|
| DOM Standard # interface-treewalker |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- 作成するメソッド:
Document.createTreeWalker()(en-US) - 関連インターフェイス:
NodeFilter(en-US),NodeIterator