遍历出文档内所有元素的tagName

    //深度优先
    function deepLogTagNames(parentNode){
        console.log(parentNode.tagName);
        const childNodes=parentNode.childNodes;
        //过滤没有tagName的节点,遍历输出
        Array.prototype.filter.call(childNodes,item=>item.tagName).forEach(itemNode=>{
            deepLogTagNames(itemNode);
        })
    }
    deepLogTagNames(document.body);
    //广度优先
    function breadLogTagNames(root){
        const queue=[root];
        while(queue.length){
            const currentNode=queue.shift();
            const {childNodes,tagName}=currentNode;
            tagName&&console.log(currentNode.tagName);//这是what?
            //过滤没有tagName的节点
            Array.prototype.filter.call(childNodes,item=>item.tagName).forEach(itemNode=>{
                queue.push(itemNode);
            })
        }
    }
    breadLogTagNames(document.body);

猜你喜欢

转载自www.cnblogs.com/fqh123/p/10507915.html