DOM

インターフェイス

NodeFilter インターフェイス

  編集:2022.04.07 by T.A.

MS

このインターフェースは、NodeIterator または TreeWalker のノードをフィルタリングするために使用されるオブジェクトを表します。NodeFilterは、ドキュメントまたはトラバース ノードについて何も知りません。提供されたフィルターに対して単一ノードを評価する方法しか知りません。

注: ブラウザーは、このインターフェースを実装するオブジェクトを提供しません。それを記述し、acceptNode() メソッドをそのニーズに合わせて調整し、それをいくつかの TreeWalker または NodeIterator オブジェクトで使用することが期待されるのはユーザーです。

プロパティ

このインターフェースは、プロパティを実装も継承もしません。

メソッド

このインターフェースはメソッドを継承しません。

NodeFilter.acceptNode()
特定のノードが NodeIterator または TreeWalker 反復アルゴリズムによって受け入れられる必要があるかどうかを判断するために使用される unsigned short を返します。

このメソッドは、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)
}

NodeFilter¶.SHOW_ALL
4294967295(0xFFFFFFFF)を返す。whatToShow 用。
NodeFilter¶.SHOW_ELEMENT
1を返す。whatToShow 用。
NodeFilter¶.SHOW_ATTRIBUTE
2を返す。whatToShow 用。
NodeFilter¶.SHOW_TEXT
4を返す。whatToShow 用。
NodeFilter¶.SHOW_CDATA_SECTION
8を返す。whatToShow 用。
NodeFilter¶.SHOW_PROCESSING_INSTRUCTION
64(0x40)を返す。whatToShow 用。
NodeFilter¶.SHOW_COMMENT
128(0x80)を返す。whatToShow 用。
NodeFilter¶.SHOW_DOCUMENT
256(0x100)を返す。whatToShow 用。
NodeFilter¶.SHOW_DOCUMENT_TYPE
512(0x200)を返す。whatToShow 用。
NodeFilter¶.SHOW_DOCUMENT_FRAGMENT
1024(0x400)を返す。whatToShow 用。

テスト
HTML:

ここに表示
スクリプト組み込み:



スクリプト:


スクリプト:



表示内容:
表示内容: