このインターフェースは、NodeIterator または TreeWalker のノードをフィルタリングするために使用されるオブジェクトを表します。NodeFilterは、ドキュメントまたはトラバース ノードについて何も知りません。提供されたフィルターに対して単一ノードを評価する方法しか知りません。
注: ブラウザーは、このインターフェースを実装するオブジェクトを提供しません。それを記述し、acceptNode() メソッドをそのニーズに合わせて調整し、それをいくつかの TreeWalker または NodeIterator オブジェクトで使用することが期待されるのはユーザーです。
このインターフェースは、プロパティを実装も継承もしません。
このインターフェースはメソッドを継承しません。
このメソッドは、NodeFilter のユーザーによって作成されることが期待されています。可能な戻り値は次のとおりです:
| 定義定数 | 説明 |
|---|---|
| FILTER_ACCEPT | ノードを受け入れる必要があるときに NodeFilter.acceptNode() メソッドによって返される値。● |
| FILTER_REJECT | ノードを拒否する必要がある場合に NodeFilter.acceptNode() メソッドによって返される値。TreeWalkerの場合、子ノードも拒否されます。●
NodeIterator の場合、このフラグは FILTER_SKIP と同義です。 |
| FILTER_SKIP | NodeIterator または TreeWalker オブジェクトによってスキップされるノードに対して NodeFilter.acceptNode() によって返される値。●
スキップされたノードの子は引き続き考慮されます。これは「このノードをスキップしますが、その子はスキップしません」として扱われます。 |
const nodeIterator = document.createNodeIterator(
// Node to use as root
document.getElementById('someId'),
// Only consider nodes that are text nodes (nodeType 3)
NodeFilter.SHOW_TEXT,
// Object containing the function to use for the acceptNode method
// of the NodeFilter
{
acceptNode: function(node) {
// Logic to determine whether to accept, reject or skip node
// In this case, only accept nodes that have content
// other than whitespace
if (/\S/.test(node.data)) {
return NodeFilter.FILTER_ACCEPT
}
}
},
false
);
// Show the content of every non-empty text node that is a child of root
let node;
while ((node = nodeIterator.nextNode())) {
alert(node.data)
}
| 表示内容: |
| 表示内容: |