DOM
::Document.createNodeIterator() メソッド
編集:2022.09.02 by T.A.
→、
新しい NodeIterator オブジェクトを返します。
構文
Document.createNodeIterator(root[, whatToShow[, filter]])
Document
| 実質 document でしょう。
|
---|
root
| NodeIterator の探索の開始地点になるルート ノードです。
|
---|
whatToShow
| 省略可。オプションの unsigned long 値で、 の定数プロパティを組み合わせて作られたビット マスクを表します。これは特定の種類のノードを絞り込みするのに便利な方法です。既定値は 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
| →ProcessingInstruction
|
---|
NodeFilter.SHOW_TEXT
| 4
| Text ノードを表します。
|
---|
|
---|
filter
| 省略可。NodeFilter インターフェースを実装したオブジェクト。その acceptNode() メソッドは、反復可能なノードのリストに含めるかどうかを決定するために、whatToShow フラグによって含まれていると受け入れられたルートを基準としたサブ ツリーの各ノードに対して呼び出されます(代わりに単純なコールバック関数を使用することもできます)。このメソッドは NodeFilter.FILTER_ACCEPT、NodeFilter.FILTER_REJECT、NodeFilter.FILTER_SKIP のいずれかを返します。例を参照してください。
|
---|
メモ: Gecko 12.0(Firefox 12.0/Thunderbird 12.0/SeaMonkey 2.9)より前の版では、このメソッドは DOM4 仕様の一部ではないオプションの 4 番目の引数(entityReferenceExpansion)を受け入れていました。この引数は、エンティティ参照ノードの子がイテレーターから見えるかどうかを示していました。このようなノードはブラウザーでは作成されないので、この引数は何の効果もありませんでした。
戻り値
NodeIterator。
例
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);
}
テスト