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 July 2015.
Document.createNodeIterator()
メソッドは、新しい NodeIterator
オブジェクトを返します。
構文
createNodeIterator(root)
createNodeIterator(root, whatToShow)
createNodeIterator(root, whatToShow, filter)
引数
root
-
NodeIterator
の探索の開始地点になるルートノードです。 whatToShow
省略可-
オプションの
unsigned long
値で、NodeFilter
の定数プロパティを組み合わせて作られたビットマスクを表します。 これは特定の種類のノードを絞り込みするのに便利な方法です。既定値は0xFFFFFFFF
で、SHOW_ALL
定数を表します。定数 数値 説明 NodeFilter.SHOW_ALL
4294967295
(すなわちunsigned long
の最大値)すべてのノードを表します。 NodeFilter.SHOW_ATTRIBUTE
非推奨;2
属性 Attr
ノードを表します。これは、Attr
ノードをルートとしてNodeIterator
を作成した場合にのみ意味を持ちます。この場合、その属性ノードが反復や探索の最初の位置に現れることを意味します。属性は他のノードの子ではないので、文書ツリーを探索しても現れません。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
Shows ProcessingInstruction
nodes.NodeFilter.SHOW_TEXT
4
Text
ノードを表します。 filter
省略可-
コールバック関数または
acceptNode()
メソッドを持つオブジェクトです。この関数またはメソッドは、この関数またはメソッドは、サブツリー内の各ノードのうち whatToShow フラグで含まれると受け入れられたノードに対して呼び出され、反復可能オブジェクトのリストに記載するかどうかを決定します。このメソッドはNodeFilter.FILTER_ACCEPT
、NodeFilter.FILTER_REJECT
、NodeFilter.FILTER_SKIP
のいずれかを返す必要があります。例を参照してください。
返値
新しい NodeIterator
オブジェクトです。
例
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()
メソッドを持つオブジェクトを使用しています。
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 Standard # dom-document-createnodeiterator |
ブラウザーの互換性
BCD tables only load in the browser