Document: createNodeIterator() メソッド
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月.
Document.createNodeIterator() メソッドは、新しい NodeIterator オブジェクトを返します。
構文
js
createNodeIterator(root)
createNodeIterator(root, whatToShow)
createNodeIterator(root, whatToShow, filter)
引数
root-
NodeIteratorの探索の開始地点になるルートノードです。 whatToShow省略可-
オプションの
unsigned long値で、NodeFilterの定数プロパティを組み合わせて作られたビットマスクを表します。 これは特定の種類のノードを絞り込みするのに便利な方法です。既定値は0xFFFFFFFFで、SHOW_ALL定数を表します。定数 数値 説明 NodeFilter.SHOW_ALL4294967295(すなわちunsigned longの最大値)すべてのノードを表します。 NodeFilter.SHOW_ATTRIBUTE非推奨;2属性 Attrノードを表します。これは、AttrノードをルートとしてNodeIteratorを作成した場合にのみ意味を持ちます。この場合、その属性ノードが反復や探索の最初の位置に現れることを意味します。属性は他のノードの子ではないので、文書ツリーを探索しても現れません。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_INSTRUCTION64Shows ProcessingInstructionnodes.NodeFilter.SHOW_TEXT4Textノードを表します。 filter省略可-
コールバック関数または
acceptNode()メソッドを持つオブジェクトです。この関数またはメソッドは、この関数またはメソッドは、サブツリー内の各ノードのうち whatToShow フラグで含まれると受け入れられたノードに対して呼び出され、反復可能オブジェクトのリストに記載するかどうかを決定します。このメソッドはNodeFilter.FILTER_ACCEPT、NodeFilter.FILTER_REJECT、NodeFilter.FILTER_SKIPのいずれかを返す必要があります。例を参照してください。
返値
新しい NodeIterator オブジェクトです。
例
js
const nodeIterator = document.createNodeIterator(
document.body,
NodeFilter.SHOW_ELEMENT,
(node) =>
node.nodeName.toLowerCase() === "p"
? NodeFilter.FILTER_ACCEPT
: NodeFilter.FILTER_REJECT,
);
const pars = [];
let currentNode;
while ((currentNode = nodeIterator.nextNode())) {
pars.push(currentNode);
}
同じ動作ですが、acceptNode() メソッドを持つオブジェクトを使用しています。
js
const nodeIterator = document.createNodeIterator(
document.body,
NodeFilter.SHOW_ELEMENT,
{
acceptNode(node) {
return node.nodeName.toLowerCase() === "p"
? NodeFilter.FILTER_ACCEPT
: NodeFilter.FILTER_REJECT;
},
},
);
const pars = [];
let currentNode;
while ((currentNode = nodeIterator.nextNode())) {
pars.push(currentNode);
}
仕様書
| Specification |
|---|
| DOM> # dom-document-createnodeiterator> |
ブラウザーの互換性
Loading…