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_COMMENT
128
显示 Comment
节点。NodeFilter.SHOW_DOCUMENT
256
显示 Document
节点。NodeFilter.SHOW_DOCUMENT_FRAGMENT
1024
显示 DocumentFragment
节点。NodeFilter.SHOW_DOCUMENT_TYPE
512
显示 DocumentType
节点。NodeFilter.SHOW_ELEMENT
1
显示 Element
节点。NodeFilter.SHOW_ENTITY
32
显示 Entity
节点。 这仅在创建以Entity
实体节点为根节点的TreeWalker
时有意义;在这种情况下,这意味着该实体节点会出现在迭代或遍历的第一位。因为实体节点不会是其他节点的子代,遍历文档树时,实体节点不会出现。NodeFilter.SHOW_ENTITY_REFERENCE
16
显示 EntityReference
节点。NodeFilter.SHOW_NOTATION
2048
显示 Entity
节点。 这仅在创建以Notation
符号节点为根节点的TreeWalker
时有意义;在这种情况下,这意味着该符号节点会出现在迭代或遍历的第一位。因为符号节点不会是其他节点的子代,遍历文档树时,符号节点不会出现。NodeFilter.SHOW_PROCESSING_INSTRUCTION
64
显示 ProcessingInstruction
节点。NodeFilter.SHOW_TEXT
4
显示 Text
节点。 filter
可选- 是实现
NodeFilter
接口的对象; 其acceptNode()
方法会对从根节点开始到子树中的每个节点都调用一次,哪些节点需要进入迭代节点列表等待调用则取决于whatToShow参数(也可以使用一个简单的回调函数代替acceptNode()
)。该方法需要返回下列常量之一:NodeFilter.FILTER_ACCEPT
,NodeFilter.FILTER_REJECT
或NodeFilter.FILTER_SKIP
(见NodeFilter),参见示例。
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论