美文网首页
深度优先,递归遍历网页所有节点

深度优先,递归遍历网页所有节点

作者: 5ab2de3d26e8 | 来源:发表于2016-12-02 17:06 被阅读0次
       var blanks=[];
        function getChild(parent){
            console.log(blanks.join('')+
                (parent.nodeType!=3?
                             parent.nodeName:parent.nodeValue)
            ); 
            if(parent.childNodes.length>0){
                blanks.push("\t");//每次有子元素就加tab
                for(var i=0,len=parent.childNodes.length;i<len;i++){//先深度遍历
                    var child=parent.childNodes[i];
                    getChild(child);            
                }
                blanks.pop();//遍历一层后弹出tab
            }
        }
        getChild(document);
    

    经常用来遍历不确定层级深度的树形结构,如网页元素,网盘文件夹,多级管理结构


    也可以用DOM Level2中的遍历API
    <p>
    1.创建遍历API对象;
    var iterator=document.createNodeIterator(
    开始的父节点对象,
    whatToShow,
    null,false
    );
    //whatToShow参数:
    // NodeFilter.SHOW_ELEMENT
    // NodeFilter.SHOW_ALL
    2.用while循环,反复调用iterator.nextNode()方法
    </p>

    相关文章

      网友评论

          本文标题:深度优先,递归遍历网页所有节点

          本文链接:https://www.haomeiwen.com/subject/obrqmttx.html