使用递归的方法获取所有子代元素

来源:互联网 发布:软件测试英文工作报告 编辑:程序博客网 时间:2024/05/20 19:17
<script>
        //DOM 没有提供直接获取所有后代元素的API
        //jQuery提供了find
        //DOM 提供了获取子代元素的属性
        //  childNodes   children


        //获取一个节点的所有后代节点
        //可以先获取他所有的子节点
        //再一次获取所有子节点的子节点
        //以此类推,就获取到了所有的后代节点


        function getChildNodes(node){
            var nodes = node.childNodes;
            var arr = [];


            for (var i = 0; i < nodes.length; i++) {
                var childNode = nodes[i];
                if(childNode.nodeType == 1){
                    //可以在这里使用这个元素节点了
                    arr.push(childNode);
                    //第一次进来的时候childNOde就是第一个div
                    var temp = getChildNodes(childNode);
                    arr = arr.concat(temp);
                }
            }
            return arr;
        }
</script>
1 0