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非推奨8CDATASectionノードを表します。NodeFilter.SHOW_COMMENT128Commentノードを表します。NodeFilter.SHOW_DOCUMENT256Documentノードを表します。NodeFilter.SHOW_DOCUMENT_FRAGMENT1024DocumentFragmentノードを表します。NodeFilter.SHOW_DOCUMENT_TYPE512DocumentTypeノードを表します。NodeFilter.SHOW_ELEMENT1Elementノードを表します。NodeFilter.SHOW_ENTITY非推奨32Entityノードを表示します。これは、EntityノードをルートとしてNodeIteratorを作成した場合にのみ意味を持ちます。この場合、Entityノードが探索の最初の位置に現れることを意味します。エンティティは文書ツリーの一部ではないので、文書ツリーを探索しても表されません。NodeFilter.SHOW_ENTITY_REFERENCE非推奨16EntityReferenceノードを表します。NodeFilter.SHOW_NOTATION非推奨2048Notationノードを表示します。これは、NotationノードをルートとしてNodeIteratorを作成した場合にのみ意味を持ちます。この場合、Notationノードが探索の最初の位置に現れることを意味します。 Notation は文書ツリーの一部ではないので、文書ツリーを探索しても表されません。NodeFilter.SHOW_PROCESSING_INSTRUCTION64Shows ProcessingInstructionnodes.NodeFilter.SHOW_TEXT4Textノードを表します。 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) を受け入れていました。この引数は、エンティティ参照ノードの子がイテレーターから見えるかどうかを示していました。このようなノードはブラウザーでは作成されないので、この引数は何の効果もありませんでした。
例
js
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