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 的浏览器中加载。
另请参阅
- 创建方法:
Document.createNodeIterator()
。 - 相关接口:
TreeWalker