Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从d3js中折叠的所有节点开始?_Javascript_D3.js_Tree - Fatal编程技术网

Javascript 如何从d3js中折叠的所有节点开始?

Javascript 如何从d3js中折叠的所有节点开始?,javascript,d3.js,tree,Javascript,D3.js,Tree,从这个例子开始,我希望有一个所有节点都已折叠的树,因此初始图形应该只包含一个节点(根)。选项1:修改JSON 修改JSON文件readme.JSON,以使用\u children而不是children 选项2:编辑Javascript 编辑javascript以切换每个节点的\u children和children属性。可以这样做 var nodes = flatten(root); nodes.forEach(function(d) { d._children = d.children;

从这个例子开始,我希望有一个所有节点都已折叠的树,因此初始图形应该只包含一个节点(根)。

选项1:修改JSON

修改JSON文件
readme.JSON
,以使用
\u children
而不是
children

选项2:编辑Javascript

编辑javascript以切换每个节点的
\u children
children
属性。可以这样做

var nodes = flatten(root);
nodes.forEach(function(d) {
  d._children = d.children;
  d.children = null;
});

下面是第二个选项的示例。

将此内容放在这里,以供将来的读者阅读:

d3.json("json/results.json", function(json) {
    root = json;
    root.x0 = h / 2;
    root.y0 = 0;
    function toggleAll(d) {
    if (d.children) {
      d.children.forEach(toggleAll);
      toggle(d);
    }
}

root.children.forEach(toggleAll);

toggle(root);
update(root);
});
var allnode=flatte(根);

对于(var i=0;iBrant您知道导航所有节点并将其设置为打开的方法吗?您的回答告诉我,
\u children
是关闭的,而
children
是打开的。我希望只需单击一次,即可将树完全打开/关闭。tia hey@BrantOlsen我有一个问题。我不希望所有节点都在一个json中。我我宁愿先加载一个根目录,然后当我单击时加载另一个json,然后以某种方式创建与其父目录的链接。你能告诉我怎么做吗?Thanks@user414209你应该把它放到一个新的问题中,这样大家都能看到它。@BrantOlsen我尝试了选项1,得到了一些奇怪的结果,源节点消失了,但选项2起了作用很好。我更新了你的提琴来修复断开的链接:很好的添加-我在这个很棒的示例代码库中使用了它-以获得理想的效果,开始完全折叠而不是完全扩展,这对我来说是压倒性的-我宁愿探索树并最终到达那里。
var allnode =  flatten(root);
for (var i=0;i<allnode.length;i++){click(allnode[i])}