首页 > 代码库 > 使用递归获取所有后代元素

使用递归获取所有后代元素

 1         function children(ele){
 2              //定义一个空数组,用来接收子元素
 3                 var allEle = [];
 4             //1.获取这个元素所有的子元素
 5             var eles = ele.childNodes;
 6             //2.再去获取子元素的子元素
 7             for (var i = 0; i < eles.length; i++) {
 8                 //遍历获取到的所有的子元素,就能拿到每一个子元素
 9                 var child = eles[i];
10                //判断是否为元素节点
11                 if(child.nodeType == 1){
13                     allEle.push(child);
14                     //2.再去获取当前子元素的所有子元素
15                     //获取到子元素之后,将其加入数组中
16                     var temp = children(child);
17                     allEle = allEle.concat(temp);
18                 }
19             }
20             //最终返回了数组
21             return allEle;
22         }
23             

这种封装,还可以扩展为获得元素id,判断id是否是你需要的等等。

使用递归获取所有后代元素