Document.createNodeIterator()

新しい NodeIterator オブジェクトを返します。

構文

const nodeIterator = document.createNodeIterator(root[, whatToShow[, filter]]);

root
NodeIterator の探索の開始地点になるルートノードです。
whatToShow Optional
オプションの 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 Optional
NodeFilter インターフェースを実装したオブジェクト。その acceptNode() メソッドは、反復可能なノードのリストに含めるかどうかを決定するために、 whatToShow フラグによって含まれていると受け入れられたルートを基準としたサブツリーの各ノードに対して呼び出されます (代わりに単純なコールバック関数を使用することもできます)。このメソッドは NodeFilter.FILTER_ACCEPT, NodeFilter.FILTER_REJECT, or NodeFilter.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);
}

仕様書

仕様書 状態 備考
DOM
document.createNodeIterator の定義
現行の標準

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
createNodeIteratorChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 3.5IE 完全対応 9Opera 完全対応 9Safari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応