利用深度优先遍历和递归

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;
}

1.《js tree 根据子节点找到所有父节点》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《js tree 根据子节点找到所有父节点》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/study/26529.html