Javascript 仅以根节点onload开始的树结构

Javascript 仅以根节点onload开始的树结构,javascript,d3.js,tree-structure,Javascript,D3.js,Tree Structure,我正在构建一个树形图,如所示: 我希望有一个所有节点都折叠的树,因此初始图应该只包含一个节点(根)。加载页面时,只应显示根节点,然后单击时,显示其余子节点 我该怎么做呢?我知道这是前一段时间提出的问题,但我还是会回答,因为我遇到了类似的情况 这里有两个选项,这取决于您是否希望根节点可单击,以及子节点是否完整显示(单击根节点后),如您提供的示例中当前显示的那样,或者是否希望所有子节点也折叠 选项1(仅根节点折叠) 初始化d3对象时,在函数中使用更新(根)对其进行编码(对其执行ctrl+f或cmd+

我正在构建一个树形图,如所示:

我希望有一个所有节点都折叠的树,因此初始图应该只包含一个节点(根)。加载页面时,只应显示根节点,然后单击时,显示其余子节点


我该怎么做呢?

我知道这是前一段时间提出的问题,但我还是会回答,因为我遇到了类似的情况

这里有两个选项,这取决于您是否希望根节点可单击,以及子节点是否完整显示(单击根节点后),如您提供的示例中当前显示的那样,或者是否希望所有子节点也折叠

选项1(仅根节点折叠)

初始化
d3
对象时,在函数中使用
更新(根)对其进行编码(对其执行ctrl+f或cmd+f)放入
切换(根)
。变量名
root
根据给出的示例,您的版本和函数名可能不同(因为您没有提供示例代码)

选项2(所有节点都已折叠)

您的操作与上面的选项1相同,但就在新插入的
切换(root)之前
还可以放置
root.children.forEach(toggall)其中
toggleAll
是一个您还需要插入的函数,它是:

function toggleAll(d) {
    if (d.children) {
        d.children.forEach(toggleAll);
        toggle(d);
    }
}
备选方案

我给出的选项不限于上述内容。如果您遵循brantolsen.github.com提供的这个示例(),您将发现实现您试图实现的目标的其他示例