【发布时间】:2017-11-23 11:41:52
【问题描述】:
我想我不明白 D3 如何使用它的节点。
我正在加载一个 JSON 文件(分层数组):
d3.json('readme.json', function(error, data){
nodes = tree.nodes(data);
我正在将组(以及矩形和其他 svg 对象)附加到一个 svg 容器中:
var gNodes = svgContainer
.selectAll(".node")
.data(nodes)
.enter()
.append("g")
.attr("transform", "translate("+2000+","+0+")")
.on("click", toggle);
我现在要做的是通过单击一个节点(其大小可通过 rect svg 对象看到)来隐藏节点的子节点,但我无法让它工作。
我有一个功能切换:
function toggle(d)
通过点击节点来使用(参见上面的var gNodes)。
在切换中我可以使用d.children,通过调试器我可以看到他找到了正确的节点。
但是如何删除 svgContainer 中的节点和矩形等?它不是这样工作的:
d.children.exit().remove();
我认为.exit().remove() 可以用于选择,而d.children 不是选择(它是其中的数据?)。
但是必须有一种方法可以使用 D3 删除树中节点的子节点。我该怎么做?
【问题讨论】:
标签: javascript d3.js