是否可以使用 treewalker 跳过当前子树中的迭代并跳转到下一个节点? 例子
<nav>
<p>paragraph</p>
<ul>
<li>one</li>
<li>two</li>
</ul>
<p>paragraph</p>
</nav>
和js
var nav=document.getElementsByTagName("nav")[0];
var tree=document.createTreeWalker(nav,NodeFilter.SHOW_ELEMENT,null,false);
tree.firstChild(); // first paragraph
tree.nextSibling(); // ul
tree.firstChild(); // first li chid of ul
tree.nextNode()||tree.nextSibling() // both return next li
有什么方法可以在树行者命中第一个 LI 元素后停止子树的迭代并直接跳转到另一段?
最佳答案
您可以创建自定义 filter :
var filter = {
acceptNode: function(n) {
return n && n.parentNode && n.parentNode.tagName != "UL"
? NodeFilter.FILTER_ACCEPT
: NodeFilter.FILTER_REJECT;
}
};
var tree=document.createTreeWalker(nav, NodeFilter.SHOW_ELEMENT, filter, false);
关于javascript - 树行者迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30696232/