我正在使用D3生成一个家谱图表,(基于此处提供的代码:http://www.d3noob.org/2014/01/tree-diagrams-in-d3js_11.html),图表数据来自服务器,用户可以选择要查看的家庭,然后单击提交按钮返回数据,然后D3绘制图表。但是,如果用户在不刷新页面的情况下选择另一个家庭(或相同的家庭),并按下提交按钮,则新图形将在旧图形下方绘制。如何清除D3.js画布,以便只看到新图形?
d3.select('svg').selectAll('*').remove();
.remove()
应用于现有选择。// Set new data on your chart:
var items = d3.select('svg').selectAll('.item').data(newData);
// Remove old elements:
items.exit().remove();
$("#svgCanvasDiv").empty();
您可以使用以下代码清除画布:
d3.select('svg').remove();