天天看点

遍历DOM树

<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
    <div>
        <p>zhang</p>
        <ul>
            <li>
            </li>
        </ul>
    </div>
<body>
    <script>
        //遍历DOM树
        
        //获取页面中的根节点--根标签-->HTML
        var root = document.documentElement;
        //  函数遍历Dom树
        function forDOM(root){
            //调用fn,显示HTML节点的名字
            //f1(root);
            // 获取所有的根节点
            var children = root.children;
            // 调取html下所有的子节点
            forChildren(children);
        }
        //函数调用
        forDOM(root);
        function f1(node){
            //输出该节点的名字
            console.log("节点的名字" + node.nodeName);
        } 
        
        //给我一个子节点,我把这个子节点中的所有子节点显示出来
        function forChildren(children){
            //遍历所有的子节点
            for(var i=0;i<children.length;i++ ){
                var child = children[i];
                //显示每一个节点的名字
                f1(child);
                // 判断child下面有没有根节点,如果有子节点,继续循环
                child.children && forDOM(child);               
            }
        }
        </script>
</body>
</html>