Document.createNodeIterator()
新しい NodeIterator
オブジェクトを返します。
構文
const nodeIterator = document.createNodeIterator(root[, whatToShow[, filter]]);
値
root
-
NodeIterator
の探索の開始地点になるルートノードです。 whatToShow
省略可-
オプションの
unsigned long
値で、NodeFilter
の定数プロパティを組み合わせて作られたビットマスクを表します。これは特定の種類のノードを絞り込みするのに便利な方法です。. 既定値は0xFFFFFFFF
で、SHOW_ALL
定数を表します。定数 数値 説明 NodeFilter.SHOW_ALL
-1
(すなわち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
Entity
ノードを表示します。これは、Entity
ノードをルートとしてNodeIterator
を作成した場合にのみ意味を持ちます。この場合、Entity
ノードが探索の最初の位置に現れることを意味します。エンティティは文書ツリーの一部ではないので、文書ツリーを探索しても表されません。NodeFilter.SHOW_ENTITY_REFERENCE
非推奨16
EntityReference
ノードを表します。NodeFilter.SHOW_NOTATION
非推奨2048
Notation
ノードを表示します。これは、Notation
ノードをルートとしてNodeIterator
を作成した場合にのみ意味を持ちます。この場合、Notation
ノードが探索の最初の位置に現れることを意味します。 Notation は文書ツリーの一部ではないので、文書ツリーを探索しても表されません。NodeFilter.SHOW_PROCESSING_INSTRUCTION
64
Shows ProcessingInstruction
nodes.NodeFilter.SHOW_TEXT
4
Text
ノードを表します。 filter
省略可-
NodeFilter インターフェースを実装したオブジェクト。その acceptNode() メソッドは、反復可能なノードのリストに含めるかどうかを決定するために、 whatToShow フラグによって含まれていると受け入れられたルートを基準としたサブツリーの各ノードに対して呼び出されます (代わりに単純なコールバック関数を使用することもできます)。このメソッドは
NodeFilter.FILTER_ACCEPT
,NodeFilter.FILTER_REJECT
, orNodeFilter.FILTER_SKIP
のいずれかを返します。例を参照してください。
メモ: Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9) より前の版では、このメソッドは DOM4 仕様の一部ではないオプションの 4 番目の引数 (entityReferenceExpansion) を受け入れていました。この引数は、エンティティ参照ノードの子がイテレーターから見えるかどうかを示していました。このようなノードはブラウザーでは作成されないので、この引数は何の効果もありませんでした。
例
const nodeIterator = document.createNodeIterator(
document.body,
NodeFilter.SHOW_ELEMENT,
function (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