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

Javascript 如何使用d3.js展开可折叠树上的特定节点?,javascript,d3.js,tree,Javascript,D3.js,Tree,我有这棵树,我想每次扩展一个节点。我找到了这段代码,但它一次扩展了所有节点 function expand(d){ if (d._children) { d.children = d._children; d.children.forEach(expand); d._children = null; } } 我在这棵树后面有一个逻辑,我想在任何时候扩展一个特定的节点,通过传递像节点名称这样的参数来选择要扩展的节点 在处理d之前,请停止递归 funct

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

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


我在这棵树后面有一个逻辑,我想在任何时候扩展一个特定的节点,通过传递像节点名称这样的参数来选择要扩展的节点

在处理
d之前,请停止递归

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;
    }
}
(我想我更喜欢后者)

祝你好运

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