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

时间:2014-04-21 02:27:29

标签: javascript html dom

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

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

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

2 个答案:

答案 0 :(得分:1)

使用NodeFilter.FILTER_REJECT作为过滤器的返回值,以绕过子树的处理。有关示例,请参阅https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter

答案 1 :(得分:0)

getelementbyclass=function(node){
if (node.className=="blue") //filter out elements with this class attribute
return NodeFilter.FILTER_ACCEPT
else
return NodeFilter.FILTER_SKIP
}