Javascript 删除d3 svg元素以重新绘制

Javascript 删除d3 svg元素以重新绘制,javascript,html,xml,svg,d3.js,Javascript,Html,Xml,Svg,D3.js,我希望你能帮助我,因为这快把我逼疯了 所以我尝试使用d3重新绘制svg。在我的代码中,我使用以下方法添加svg: d3.xml("Images/vertical_line.svg", "image/svg+xml", function(xml) { var importedNode = document.importNode(xml.documentElement, true); var svg = d3.select('#'+id+'_verticallinecontainer').

我希望你能帮助我,因为这快把我逼疯了

所以我尝试使用d3重新绘制svg。在我的代码中,我使用以下方法添加svg:

d3.xml("Images/vertical_line.svg", "image/svg+xml", function(xml) {

  var importedNode = document.importNode(xml.documentElement, true);
  var svg = d3.select('#'+id+'_verticallinecontainer').node().appendChild(importedNode);

  });
调用更新函数后,我将继续删除该元素:

d3.select("#"+id+'_verticallinecontainer').remove();
这将删除容器和元素。然后,我继续使用上述代码重新绘制svg

我的问题是,当它再次附加svg时,它会执行两次,我不明白为什么!似乎d3以某种方式缓存了svg,并再次添加它

希望你能帮我解决问题,任何帮助都将不胜感激

以添加、删除和再次添加SVG和包含的圆为例。希望这有帮助

function update() {
    svg.remove();
    svg = d3.selectAll("body").append("svg");
    svg.append("circle")
        .attr("cx",40)
        .attr("cy",40)
        .attr("r",20)
        .style("fill","blue");
}

我也有类似的问题。删除SVG元素不允许完全更新所需的数据

相反,我删除了SVG中创建的g元素,如下所示:

d3.selectAll("g > *").remove()
在我的updateGraph()函数中

详细说明和情况如下:

您是否尝试过使用d3.select(svg).remove()替代?svg是否应该是我试图删除的元素的名称?否,变量
svg
.Hmm。。这不起作用:(你能提供一个完整的工作示例来演示这个问题吗?