NodeIterator

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

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

浏览器兼容性

另见