NodeFilter.acceptNode() - Web API 接口参考 编辑

NodeFilter.acceptNode() 方法会返回一个无符号短整型,用于表明给出的 Node 是否要被 NodeIterator 或 TreeWalker 的迭代算法所接受。该方法应由 NodeFilter 的使用者重写。可返回的值有:

ConstantDescription
NodeFilter.FILTER_ACCEPT当一个节点应被接受时由 NodeFilter.acceptNode() 返回。
NodeFilter.FILTER_REJECT当一个节点应被拒绝时由 NodeFilter.acceptNode() 返回 。被拒绝访问节点的子节点无法通过NodeIteratorTreeWalker 对象访问。该值可认为是“越过该节点及其子节点” 。
NodeFilter.FILTER_SKIP当一个节点应被 NodeIteratorTreeWalker 对象越过时由 NodeFilter.acceptNode() 返回 。其子节点依然可被访问到。该值可认为是“越过该节点但不包括其子节点”。

该函数如需要TreeWalker访问节点则需返回 NodeFilter.FILTER_ACCEPT,如果需要忽略节点及其子节点则需返回NodeFilter.FILTER_REJECT,除此之外还可以返回 NodeFilter.FILTER_SKIP。

浏览器没有提供该方法的对象实现。如果用户需要,应实现一个包含acceptNode()方法的对象,用于 TreeWalker 或 NodeIterator 对象使用。

Syntax

result = nodeFilter.acceptNode(node)

Parameters

node
一个将被过滤器检查的 Node 对象。

Example

var nodeIterator = document.createNodeIterator(
  // 作为搜索起点的根节点
  document.getElementById('someId'),

  // 只需要文本节点
  NodeFilter.SHOW_TEXT,

  // 一个包含用于NodeFilter的accpetNode方法的对象
    { acceptNode: function(node) {
      // 一段用于判明是否需要解释、拒绝或越过节点的逻辑
      // 在本例中,仅需要接受不包含空白内容的节点
      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 = iterator.nextNode())) {
  alert(node.data);
}

Specifications

SpecificationStatusComment
DOM
NodeFilter.acceptNode()
Living StandardNo change from Document Object Model (DOM) Level 2 Traversal and Range Specification
Document Object Model (DOM) Level 2 Traversal and Range Specification
NodeFilter.acceptNode()
ObsoleteInitial definition.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support1.0(Yes)2.0 (1.8.1)9.09.03.0
FeatureAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support(Yes)(Yes)1.0 (1.8.1)(Yes)9.03.0

See also

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:95 次

字数:7228

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文