NodeIterator

NodeIterator 接口表示一个迭代器,用于按文档顺序遍历 DOM 子树的节点。

语法

可以使用 Document.createNodeIterator() 方法创建 NodeIterator,如下所示

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

实例属性

此接口不继承任何属性。

NodeIterator.root 只读

返回一个表示根节点的 Node,该节点是在创建 NodeIterator 时指定的。

NodeIterator.whatToShow 只读

返回一个 unsigned long 位掩码,该掩码描述要匹配的 Node 类型。不匹配的节点将被跳过,但相关的子节点可能会包含在内。

可能的位掩码值是 NodeFilter 接口中的常量

常量 数值 描述
NodeFilter.SHOW_ALL 4294967295(即 unsigned long 的最大值) 显示所有节点。
NodeFilter.SHOW_ATTRIBUTE 已弃用 2 显示属性 Attr 节点。这仅在使用 Attr 节点作为其根节点创建 NodeIterator 时才有意义;在这种情况下,这意味着属性节点将出现在迭代或遍历的第一个位置。由于属性永远不是其他节点的子节点,因此在遍历文档树时它们不会出现。
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 旧版,不再使用。
NodeFilter.SHOW_ENTITY_REFERENCE 已弃用 16 旧版,不再使用。
NodeFilter.SHOW_NOTATION 已弃用 2048 旧版,不再使用。
NodeFilter.SHOW_PROCESSING_INSTRUCTION 64 显示 ProcessingInstruction 节点。
NodeFilter.SHOW_TEXT 4 显示 Text 节点。
NodeIterator.filter 只读

返回一个用于选择相关节点的 NodeFilter

NodeIterator.referenceNode 只读 实验性

返回迭代器锚定的 Node

NodeIterator.pointerBeforeReferenceNode 只读

返回一个布尔值,指示 NodeIterator 是否锚定在 NodeIterator.referenceNode 之前。如果为 false,则表示迭代器锚定在参考节点之后

实例方法

此接口不继承任何方法。

NodeIterator.detach() 已弃用

这是一个旧版方法,不再有任何作用。以前它用于将 NodeIterator 标记为已释放,以便垃圾回收可以回收它。

NodeIterator.previousNode()

返回文档中的前一个 Node,如果不存在则返回 null

NodeIterator.nextNode()

返回文档中的下一个 Node,如果不存在则返回 null

规范

规范
DOM 标准
# interface-nodeiterator

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅