DOM遍历

下面两者都是深度优先 IE不支持DOM遍历

1.NodeIterator

开始节点
访问节点类型
选择器 接受的显示
false html不用

    //参数3
    var filter = {
        acceptNode: function(node){
            return node.tagName.toLowerCase() == "div" ?
                NodeFilter.FILTER_ACCEPT : //筛选
                NodeFilter.FILTER_SKIP;   //跳过
        }
    }
    var iterator = document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, filter, false);

    //两个方法
    var node = iterator.nextNode();
    while(node !== null){
        node = iterator.previoueNode();
    }

2.TreeWalker

提供不同方向上遍历DOM的方法,任何方向移动
parentNode() firstChild() lastChild() nextSibling() previousSibling() currentNode属性

    //与nodeIterator参数相同
    var walker = document.createTreeWalker(mydiv, NodeFilter.SHOW_ELEMENT,null, false);

参数3跳转方向区别

类型 描述
NodeFilter.FILTER_SKIP 跳过当前节点,进入子树节点
NodeFilter.FILTER_REJECT 跳过当前子树

猜你喜欢

转载自blog.csdn.net/weixin_39265000/article/details/79572088