删除d3 svg元素以进行重绘

 朱仔happy 发布于 2023-01-18 12:04

我希望你能帮助我,因为这让我疯了!

所以我试图用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,再次添加它.

希望你能帮助清除什么是错的,任何帮助将不胜感激!

2 个回答
  • 我遇到了类似的问题.删除SVG元素不允许我像我想要的那样完全更新数据.

    相反,我使用以下行删除了在SVG内创建的g元素:

    d3.selectAll("g > *").remove()
    

    在我的updateGraph()函数中

    此处显示的完整说明和情况:重新 绘制/刷新D3中的图形

    2023-01-18 12:05 回答
  • FIDDLE快速添加,删除和添加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");
    }
    

    2023-01-18 12:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有