首页 > Web开发 > 详细

js tree 根据子节点找到所有父节点

时间:2020-06-20 11:48:55      阅读:455      评论:0      收藏:0      [点我收藏+]

利用深度优先遍历和递归

var acceptUnitNodes = null;//接收单位树形数据
 function  findParentNode(ids){ //ids 是子节点数组
    var parentNodes = [];//所有父节点
 	var forfun = function (id,nodes) {
		for(var i=0;i<nodes.length;i++){
			var currentNode = nodes[i];
			if(currentNode.id == id){
				return currentNode.id;
			}else if(currentNode.children){
				var validNodeId = forfun(id,currentNode.children);
				if(validNodeId&&parentNodes.indexOf(validNodeId)<0){
					parentNodes.push(validNodeId)
				}
				if(validNodeId){
					return currentNode.id;
				}

			}

		}
	}

	$.each(ids,function (i,item) {
		// selectedValues.push(item);
		var validNodeId = forfun(item,acceptUnitNodes);
		if(validNodeId&&parentNodes.indexOf(validNodeId)<0){
			parentNodes.push(validNodeId);
		}
	})

	 console.info(parentNodes);
	


 	return parentNodes;
 }


js tree 根据子节点找到所有父节点

原文:https://www.cnblogs.com/qingmiaokeji/p/13167691.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!