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;
 }
相关文章
|
6月前
|
JavaScript BI
技术笔记:JS获取子节点、父节点和兄弟节点的方法实例总结
技术笔记:JS获取子节点、父节点和兄弟节点的方法实例总结
95 0
|
JavaScript 前端开发
JavaScript 获取子节点、父节点、兄弟节点方法总结
JavaScript 获取子节点、父节点、兄弟节点方法总结
764 0
JavaScript 获取子节点、父节点、兄弟节点方法总结
|
JavaScript 算法 前端开发
js 递归获取子节点所有父节点,深度遍历获取第一个子树
js 递归获取子节点所有父节点,深度遍历获取第一个子树
714 0
|
JavaScript 前端开发
【JavaScript】DOM查询(子节点、父节点、兄弟节点)源码详解
文章目录 获取元素节点的子节点 获取父节点和兄弟节点 扩展:获取和修改input文本标签中的值
【JavaScript】DOM查询(子节点、父节点、兄弟节点)源码详解
|
Web App开发 JavaScript 前端开发
Javascript 访问子节点childNodes
Javascript 访问子节点childNodes
122 0
Javascript 访问子节点childNodes
|
Web App开发 JavaScript 前端开发
Javascript 访问父节点parentNode
Javascript 访问父节点parentNode
195 0
|
JavaScript 前端开发
Javascript 访问子节点的第一和最后项
Javascript 访问子节点的第一和最后项
126 0
|
21天前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
20 1
JavaScript中的原型 保姆级文章一文搞懂
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
101 2
|
17天前
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
15 0