递归获取树状图的某个节点ID和这个节点的所有后代节点的ID

在多级分类查询中,需要获取某个节点及其所有后代的ID。采用递归方法实现,从当前节点开始,遍历其所有子节点,将ID拼接并保存。当遇到子节点时,继续递归直至遍历完整棵树。最终得到的ID列表以逗号分隔。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

递归获取树状图的某个节点ID和这个节点的所有后代节点的ID

在这里插入图片描述
1、 在上面的这个页面可以知道我们如果通过供应商分类去查询数据,那么就得获取节点ID作为条件去查询数据,然而这个不同于一般的数据查询,在多级分类里我们需要在获取一级数据的时候也要把他的后代节点,二级分类、三级分类等等的节点ID都要获取到。

2、 那么我们该如何去获取它的所有后代元素,由于是多级分类,所有我考虑的是用递归的方式去获取,并把所有的ID都拼接起来

3、首先我在树状图获取当前的节点处调用了封装好的方法, findAllNodes(nodes[0]);,nodes[0]就是当前点击的节点,nodeId是声明的全局变量,用于保存拼接起来的节点ID,每次进来都要先把上一次残留的数据清空。
在这里插入图片描述

/递归回取当前节点已及它的所有后代节点的ID的封装方法
function findAllNodes(nodeObj) {
var nodeArr = nodeObj.children; //没有子节点==undefined,获取当前节点的所有子元素
//判断nodeId是否为空,如果为空声明是第一次进来,此时把当前点击的节点的ID赋给nodeId
if (nodeId == “”) {
nodeId =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值