📅  最后修改于: 2023-12-03 15:31:10.626000             🧑  作者: Mango
在HTML DOM中,TreeWalker用于在文档树中遍历节点。而whatToShow属性则决定了TreeWalker遍历哪些节点。
whatToShow属性是TreeWalker对象的一个属性。它是一个整数,用于指定遍历TreeWalker时应该考虑哪些节点类型。该属性接受以下常量值:
NodeFilter.SHOW_ALL // 显示树中的所有节点。默认值
NodeFilter.SHOW_ELEMENT // 显示元素节点
NodeFilter.SHOW_ATTRIBUTE // 显示属性节点
NodeFilter.SHOW_TEXT // 显示文本节点
NodeFilter.SHOW_CDATA // 显示CDATA节点
NodeFilter.SHOW_ENTITY_REFERENCE // 显示实体引用节点
NodeFilter.SHOW_ENTITY // 显示实体节点
NodeFilter.SHOW_PROCESSING_INSTRUCTION // 显示处理指令节点
NodeFilter.SHOW_COMMENT // 显示注释节点
NodeFilter.SHOW_DOCUMENT // 显示Document节点
NodeFilter.SHOW_DOCUMENT_TYPE // 显示DTD节点
NodeFilter.SHOW_DOCUMENT_FRAGMENT // 显示DocumentFragment节点
我们可以使用TreeWalker的构造函数来创建一个实例,该实例的第二个参数可以指定遍历行为。例如,以下代码创建了一个TreeWalker,它会遍历文档树中的所有元素节点:
const walker = document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, null, false);
在这个例子中,第一个参数指定了文档树的根节点,第二个参数指定了遍历的节点类型,第三个参数可以是一个自定义的filter函数,第四个参数表示是否要遍历影子DOM。我们只指定了前两个参数,因此TreeWalker会遍历整个文档树中的元素节点。
whatToShow属性是TreeWalker中的一个重要属性,它决定了TreeWalker遍历哪些节点,可以通过指定常量值来控制遍历行为。开发人员可以利用这个属性来快速遍历文档树中的指定节点。