繁体   English   中英

我如何使用d3.js扩展可折叠树上的特定节点?

[英]How do i expand specific nodes on a collapsible tree using d3.js?

我的可折叠树

我有这棵树,我想每次扩展一个节点。 我找到了这段代码,但是它一次扩展了所有节点。

function expand(d){
  if (d._children) {
      d.children = d._children;
      d.children.forEach(expand);
      d._children = null;
  }

}

我在这棵树后面有一个逻辑,我想通过传递诸如节点名称之类的参数来选择要扩展的节点,从而随时扩展特定的节点。

像这样使d._children之前,要么停止递归:

function expand(d){
    if(d._children && d.level < 3){ // or d.name.indexOf("SpecialNode") > -1 or d.category == "expandable" or d.parent.name == "somename"  etc
        d.children = d._children;
        d.children.forEach(expand);
        d._children = null;
    }
}

或在forEach之前过滤d.children

function expand(d){
    if(d._children){
        d.children = d._children;
        d.children.filter(function(d) { return d.name.indexOf("SpecialNode") > -1; })
                  .forEach(expand);
        d._children = null;
    }
}

(我想我更喜欢后者)

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM