Javascript 我可以使用document.createTreeWalker创建的TreeWalker避免一些子树吗?

Javascript 我可以使用document.createTreeWalker创建的TreeWalker避免一些子树吗?,javascript,html,dom,Javascript,Html,Dom,我正在使用这样的TreeWalker遍历HTML DOM: var walker = document.createTreeWalker(root); var node; while (node = walker.nextNode()) { ... } 我能以某种方式避免某些子树吗?我想这可能是通过walker.parentNode()完成的,但的文档对此并不清楚。使用NodeFilter.FILTER\u REJECT作为过滤器的返回值,以绕过子树的处理。例如,请参阅。要避免子树,您需要考虑

我正在使用这样的TreeWalker遍历HTML DOM:

var walker = document.createTreeWalker(root);
var node;
while (node = walker.nextNode()) { ... }

我能以某种方式避免某些子树吗?我想这可能是通过
walker.parentNode()
完成的,但的文档对此并不清楚。

使用NodeFilter.FILTER\u REJECT作为过滤器的返回值,以绕过子树的处理。例如,请参阅。

要避免子树,您需要考虑哪些条件?@stackErr Classes和/或子树根节点的id.Classes?或者子树的某些子/孙辈的类?您可能想了解一下:帮助很大,因为我以前没有使用过它谢谢,但文档中不是说createTreeWalker的节点过滤器参数只涉及单个节点,而不是子树吗?检查过滤器是否跳过,以及它是否真正使用了同级()方法转到下一子树。它使用node.nextSibling工作,至少在我的示例中是这样的:。(它没有使用NodeFilter。)但是W3C的文档不清楚遍历顺序,所以它可能会中断。看起来正是我问这个问题时想要的。谢谢
getelementbyclass=function(node){
if (node.className=="blue") //filter out elements with this class attribute
return NodeFilter.FILTER_ACCEPT
else
return NodeFilter.FILTER_SKIP
}