.createTreeWalker()
Document.createTreeWalker()メソッドは、 新しく作成されたTreeWalkerオブジェクトを返します。
文法
treeWalker =
document.createTreeWalker(root, whatToShow, filter, entityReferenceExpansion);
引数 | 説明 |
---|---|
root | このTreeWalkerトラバーサルの、 ルートのNodeを指定します。 一般的に、これはドキュメント(document)に保有されている要素になります。 |
whatToShow |
(任意)
※この |
filter |
(任意)acceptNode メソッドを持つ、NodeFilterオブジェクトを指定します。
このメソッドはTreeWalkerから、
whatToShow の判定に渡され、ノードを受けれいるか否かを決定するために呼び出されます。(翻訳に自信なし)
|
entityReferenceExpansion |
(Mozillaで未実装?)(任意) Is a Boolean flag indicating if when discarding an EntityReference its whole sub-tree must be discarded at the same time. |
whatToShowの定数
定数 | 数値 | 説明 |
---|---|---|
NodeFilter.SHOW_ALL | -1 |
(-1は符号なしロング型の最大値) 全てのノードを表示します。 |
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 |
Entityノードを表示します。
これは、そのルートとしてEntity ノードでTreeWalker を作成した場合にのみ有効で、
このケースではトラバーサルの最初の位置で表示される事を意味します。
エンティティはドキュメントツリーの一部では無いため、ドキュメントツリー上を巡っている時には現れません。
|
NodeFilter.SHOW_ENTITY_REFERENCE (非推奨?) |
16 | EntityReferenceノードを表示します。 |
NodeFilter.SHOW_NOTATION (非推奨?) |
2048 |
Notationノードを表示します。
これは、そのルートとしてNotation ノードでTreeWalker を作成した場合にのみ有効で、
Notation ノードはトラバーサルの最初の位置で表示されることを意味します。
エンティティはドキュメントツリーの一部では無いため、ドキュメントリーを巡る際には現れません。
|
NodeFilter.SHOW_PROCESSING_INSTRUCTION | 64 | ProcessingInstructionノードを表示します。 |
NodeFilter.SHOW_TEXT | 4 | Textノードを表示します。 |
例
下記の例は、body内の全てのノードを巡り、要素ノードのセットを取りまとめ、
各ノードは単純に受け入れ可能なもの(代わりにacceptNode()
とすることも可)としてTreeWalkerを作成します。
このTreeWalkerは繰り返し処理でノード(ここでは全ての要素(Element))を進み、それを配列にpushします。(翻訳に自信なし)
var treeWalker = document.createTreeWalker(
document.body,
NodeFilter.SHOW_ELEMENT,
{ acceptNode: function(node) { return NodeFilter.FILTER_ACCEPT; } },
false
);
var nodeList = [];
while(treeWalker.nextNode()) nodeList.push(treeWalker.currentNode);
仕様
ブラウザ互換性
機能 | Chrome | Firefox (Gecko) |
IE | Opera | Safari |
---|---|---|---|---|---|
基本 | 1.0 | 2.0 (1.8.1) | 9.0 | 9.0 | 3.0 |
任意の引数 whatToShowとfilter |
1.0 | 12 (12) | × | ◯ | 3.0 |
機能 | Android | Firefox Mobile |
IE Mobile |
Opera Mobile |
Safari Mobile |
|
---|---|---|---|---|---|---|
基本 | ◯ | 1.0 (1.8.1) | ◯ | 9.0 | 3.0 | |
任意の引数 whatToShowとfilter |
◯ | 12 (12) | × | ◯ | 3.0 |
関連項目
- 作成されるオブジェクトのインターフェース: TreeWalker
- createTreeWalker on MSDN
© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。
- 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
- 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
- MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
- "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。