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

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

利用深度优先遍历和递归

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;
 }
相关文章
|
JavaScript
js递归根据父级id获取所有的子节点
js递归根据父级id获取所有的子节点
|
JavaScript 算法 前端开发
js 递归获取子节点所有父节点,深度遍历获取第一个子树
js 递归获取子节点所有父节点,深度遍历获取第一个子树
627 0
|
JavaScript 前端开发
JavaScript 获取子节点、父节点、兄弟节点方法总结
JavaScript 获取子节点、父节点、兄弟节点方法总结
610 0
JavaScript 获取子节点、父节点、兄弟节点方法总结
|
JavaScript 前端开发
【JavaScript】DOM查询(子节点、父节点、兄弟节点)源码详解
文章目录 获取元素节点的子节点 获取父节点和兄弟节点 扩展:获取和修改input文本标签中的值
【JavaScript】DOM查询(子节点、父节点、兄弟节点)源码详解
|
Web App开发 JavaScript 前端开发
Javascript 访问子节点childNodes
Javascript 访问子节点childNodes
94 0
Javascript 访问子节点childNodes
|
JavaScript
js遍历树形结构并返回所有的子节点id值
js遍历树形结构并返回所有的子节点id值
js遍历树形结构并返回所有的子节点id值
|
Web App开发 JavaScript 前端开发
Javascript 访问父节点parentNode
Javascript 访问父节点parentNode
165 0
|
JavaScript 前端开发
Javascript 访问子节点的第一和最后项
Javascript 访问子节点的第一和最后项
100 0
|
10天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的校园竞赛管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的校园竞赛管理系统附带文章源码部署视频讲解等
160 63
|
10天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的小型医院医疗设备管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的小型医院医疗设备管理系统附带文章源码部署视频讲解等
25 6