我正在以here的方式徘徊D3坍塌树 并希望在节点之间绘制一些路径。问题是当树分支折叠时,不会删除旧路径。类似的解决方案是here,但我做错了。你能告诉我应该如何更新SVG路径吗?
init,更新路径的代码:
var path = svg.selectAll('path.sce').data(nodes);
path.attr('d', lineFunction(nodes))
.style('stroke-width', 2)
.style('stroke', 'black')
.attr('class', 'arrow')
.attr('fill', 'none')
.attr('marker-end', 'url(#arrow)');
path.enter().append('svg:path').attr('d', lineFunction(nodes))
.style('stroke-width', 2)
.style('stroke', 'black')
.attr('class', 'arrow')
.attr('fill', 'none')
.attr('marker-end', 'url(#arrow)');
path.exit().remove();
完整代码 - jsfiddle
答案 0 :(得分:1)
您的问题非常简单:要使更新和退出选择生效,您必须选择在输入选择中设置的同一个类:
var path = svg.selectAll('.arrow');
这是你的小提琴:http://jsfiddle.net/odf3q84L/