Document.createNodeIterator() - Web API 接口参考 编辑

返回一个新的 NodeIterator 对象。

语法

const nodeIterator = document.createNodeIterator(root[, whatToShow[, filter]]);

参数

root
 NodeIterator遍历起始处的根节点。
whatToShow 可选
是一个可选的无符号长整型(unsigned long), 是由节点过滤器(NodeFilter)中的常量属性定义的位掩码。这是筛选特定类型节点的便捷方式。其默认值是 0xFFFFFFFF ,代表 SHOW_ALL 常量。
常量数字值描述
NodeFilter.SHOW_ALL-1 (即unsigned long 的最大值)显示所有节点。
NodeFilter.SHOW_ATTRIBUTE 2显示 Attr 特性节点。这仅在创建以Attr 特性节点为根节点的TreeWalker时有意义;在这种情况下,这意味着该特性节点会出现在迭代或遍历的第一位。因为特性节点不会是其他节点的子代,遍历文档树时,特性节点不会出现。
NodeFilter.SHOW_CDATA_SECTION 8显示 CDATASection 节点。
NodeFilter.SHOW_COMMENT128显示 Comment 节点。
NodeFilter.SHOW_DOCUMENT256显示 Document 节点。
NodeFilter.SHOW_DOCUMENT_FRAGMENT1024显示 DocumentFragment 节点。
NodeFilter.SHOW_DOCUMENT_TYPE512显示 DocumentType 节点。
NodeFilter.SHOW_ELEMENT1显示 Element 节点。
NodeFilter.SHOW_ENTITY 32显示 Entity 节点。 这仅在创建以Entity实体节点为根节点的TreeWalker时有意义;在这种情况下,这意味着该实体节点会出现在迭代或遍历的第一位。因为实体节点不会是其他节点的子代,遍历文档树时,实体节点不会出现。
NodeFilter.SHOW_ENTITY_REFERENCE 16显示 EntityReference 节点。
NodeFilter.SHOW_NOTATION 2048显示 Entity 节点。 这仅在创建以Notation符号节点为根节点的TreeWalker时有意义;在这种情况下,这意味着该符号节点会出现在迭代或遍历的第一位。因为符号节点不会是其他节点的子代,遍历文档树时,符号节点不会出现。
NodeFilter.SHOW_PROCESSING_INSTRUCTION64显示 ProcessingInstruction 节点。
NodeFilter.SHOW_TEXT4显示 Text 节点。
filter 可选
是实现 NodeFilter 接口的对象; 其 acceptNode() 方法会对从根节点开始到子树中的每个节点都调用一次,哪些节点需要进入迭代节点列表等待调用则取决于whatToShow参数(也可以使用一个简单的回调函数代替acceptNode())。该方法需要返回下列常量之一: NodeFilter.FILTER_ACCEPT ,NodeFilter.FILTER_REJECTNodeFilter.FILTER_SKIP(见NodeFilter),参见示例
注意: 在Gecko12.0(Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9)以前,这个方法接收第四个可选的参数(entityReferenceExpansion),这不是DOM4 规范中的一部分,因此被移除了。这个参数表示实体引用节点的子代对于迭代器是否可见。因为浏览器不会创建这样的节点,这个参数没有任何作用。

示例

const nodeIterator = document.createNodeIterator(
    document.body,
    NodeFilter.SHOW_ELEMENT,
    {
      acceptNode(node) {
        return node.nodeName.toLowerCase() === 'p' ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
      }
    }
);
const pars = [];
let currentNode;

while (currentNode = nodeIterator.nextNode()) {
  pars.push(currentNode);
}

规范

规范状态注释
DOM
document.createNodeIterator
Living Standard

浏览器兼容性

BCD tables only load in the browser

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

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

发布评论

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

词条统计

浏览:68 次

字数:7506

最后编辑:6 年前

编辑次数:0 次

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