树走
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 时是否必须同时丢弃其整个子树。 |