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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用递归获取所有后代元素相关的知识,希望对你有一定的参考价值。

 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是否是你需要的等等。

以上是关于使用递归获取所有后代元素的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 获取不是具有特定 CSS 类的容器的子元素的元素的后代

jquery-根据现有结果集得到另一个结果集(后代祖先或兄弟元素)

XPATH节点获取

xpath获取同级节点

包含(后代)选择器

使用MySQL 8.0递归CTE查找层次结构表中的直接后代并传播给父级