树走

TreeWalker 是一个类似于生成器的接口,可以简单有效地递归过滤 DOM 树中的节点。

以下代码连接页面中所有 Text 节点的值,并打印结果。

let parentNode = document.body;
let treeWalker = document.createTreeWalker(parentNode, NodeFilter.SHOW_TEXT);

let text = "";
while (treeWalker.nextNode())
    text += treeWalker.currentNode.nodeValue;

console.log(text); // all text in the page, concatenated

.createTreeWalker 函数有一个签名

createTreeWalker(root, whatToShow, filter, entityReferenceExpansion)
参数 细节
root 子树的节点将被转移
whatToShow 可选,unsigned long 指定要显示的节点类型。有关更多信息,请参阅 NodeFilter。
filter 可选,具有 acceptNode 方法的对象,用于在通过 whatToShow 检查后确定是否应该考虑节点
entityReferenceExpansion 已过时且可选,是一个布尔标志,指示在丢弃 EntityReference 时是否必须同时丢弃其整个子树。