NodeIterator: whatToShow 属性

Baseline 已广泛支持

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

NodeIterator.whatToShow 只读属性代表一个 unsigned integer,它表示一个位掩码,指示 NodeIterator 应返回哪些类型的节点。

一个 unsigned integer

可以组合形成位掩码的值是:

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

示例

js
const nodeIterator = document.createNodeIterator(
  document.body,
  NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,
  { acceptNode: (node) => NodeFilter.FILTER_ACCEPT },
);
if (
  nodeIterator.whatToShow & NodeFilter.SHOW_ALL ||
  nodeIterator.whatToShow & NodeFilter.SHOW_COMMENT
) {
  // nodeIterator will show comments
}

规范

规范
DOM
# dom-nodeiterator-whattoshow

浏览器兼容性

另见