使用递归获取所有后代元素
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 类的容器的子元素的元素的后代