翻译正在进行中。

NodeFilter 接口表示一个对象,此对象用于过滤 NodeIteratorTreeWalker 中的节点。它既不能处理 DOM,又不能遍历节点;它只能根据提供的过滤器对单个节点进行评估与判定。

The browser doesn't provide any object implementing this interface. It is the user who is expected to write one, tailoring the acceptNode() method to its needs, and using it with some TreeWalker or NodeIterator objects.

属性

此接口没有实现或继承任何属性。

方法

此接口不继承任何方法。

NodeFilter.acceptNode()
Returns an unsigned short that will be used to tell if a given Node must be accepted or not by the NodeIterator or TreeWalker iteration algorithm. This method is expected to be written by the user of a NodeFilter. Possible return values are:
Constant Description
FILTER_ACCEPT Value returned by the NodeFilter.acceptNode() method when a node should be accepted.
FILTER_REJECT Value to be returned by the NodeFilter.acceptNode() method when a node should be rejected. For TreeWalker, child nodes are also rejected. For NodeIterator, this flag is synonymous with FILTER_SKIP.
FILTER_SKIP Value to be returned by NodeFilter.acceptNode() for nodes to be skipped by the NodeIterator or TreeWalker object. The children of skipped nodes are still considered. This is treated as "skip this node but not its children".

例子

var 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
var node;

while ((node = nodeIterator.nextNode())) {
  alert(node.data);
}

规范

规范 状态 备注
DOM
NodeFilter
Living Standard  
Document Object Model (DOM) Level 2 Traversal and Range Specification
NodeFilter
Obsolete Initial definition.

浏览器兼容性

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support 1Edge Full support YesFirefox Full support 2IE Full support 9Opera Full support 9Safari Full support 3WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support 9Safari iOS Full support 3Samsung Internet Android Full support Yes
acceptNodeChrome Full support 1Edge Full support 12Firefox Full support 2IE Full support 9Opera Full support 9Safari Full support 3WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support 9Safari iOS Full support 3Samsung Internet Android Full support Yes

Legend

Full support  
Full support

参见

文档标签和贡献者

此页面的贡献者: mdnwebdocs-bot, RainSlide, SaschaNaz
最后编辑者: mdnwebdocs-bot,