首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >D3.js:扩展树直到节点n

问D3.js:扩展树直到节点n
EN

Stack Overflow用户
提问于 2016-05-04 10:59:19
回答 1查看 1.8K关注 0票数 3

我现在正在创建一个使用D3.js树布局的Org图。组织结构图将由登录用户打开,要求显示默认打开给用户节点的组织结构图。

例如,如果登录用户是'n',那么组织结构图是:

代码语言:javascript
复制
        j   m
       /   /
  b - e - k
 /
a - d - l - n
 \
  c- f - h
      \ 
       i

用户将看到:

代码语言:javascript
复制
a - d - l - n

因此,问题语句是将Org图表扩展到节点id/name是登录用户的特定节点。

欢迎任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-04 12:05:12

首先,在每个数据对象中设置父对象:

代码语言:javascript
复制
  function collapse(d) {
    if (d.children) {
      d._children = d.children;
      //set the parent object in all the children
      d._children.forEach(function(d1){d1.parent = d; collapse(d1);});
      d.children = null;
    }
  }

编写一个find函数,该函数查找节点并打开其所有父节点。

代码语言:javascript
复制
function find(d, name) {
    if (d.name == name){
      while(d.parent){
        d = d.parent;
        click(d);//if found open its parent
      }
      return;
    }

    //recursively call find function on its children
    if (d.children) {
      d.children.forEach(function(d){find(d, name)});
    } else if(d._children){
      d._children.forEach(function(d){find(d, name)});
    }
  }

现在使用您希望看到的节点调用find函数。

代码语言:javascript
复制
  var name = "layout";//example open till you find the node layout
  find (root, name)

工作代码here

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37025838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档