Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 清除d3js元素更新数据_Javascript_Jquery_Json_Svg_D3.js - Fatal编程技术网

Javascript 清除d3js元素更新数据

Javascript 清除d3js元素更新数据,javascript,jquery,json,svg,d3.js,Javascript,Jquery,Json,Svg,D3.js,我使用d3.js在网页上显示外部json文件中的一些数据。为了保持数据更新,我添加了setInterval()函数。问题是我需要先删除前面的svg元素来更新数据。我能这样做吗?这是我的密码: setInterval(function() { d3.json("data.json", function (data) { var svgContainer = d3.select("body").

我使用d3.js在网页上显示外部json文件中的一些数据。为了保持数据更新,我添加了setInterval()函数。问题是我需要先删除前面的svg元素来更新数据。我能这样做吗?这是我的密码:

setInterval(function() {
                d3.json("data.json", function (data) 
                {
                    var svgContainer = d3.select("body").append("svg")
                        .attr("width", "100%")
                        .attr("height", 800);

                    var text = svgContainer.selectAll("text")
                        .data(data[0].Bodenfeuchtigkeit)
                        .enter()
                        .append("text");

                    var textLabels = text
                        .attr("x", "15%")
                        .attr("y", 475)                 
                        .attr("font-family", "Open Sans, sans-serif")
                        .attr("font-size", 75)
                        .attr("fill", "green")
                        .text(data[0].Bodenfeuchtigkeit + " %");

                    var text1 = svgContainer.selectAll("text1")
                        .data(data[0].Luftfeuchtigkeit)
                        .enter()
                        .append("text");

                    var text1Labels = text1
                        .attr("x", "45%")
                        .attr("y", 475)
                        .attr("font-family", "Open Sans, sans-serif")
                        .attr("font-size", 75)
                        .attr("fill", "green")
                        .text(data[0].Luftfeuchtigkeit + " %");

                    var text2 = svgContainer.selectAll("text2")
                        .data(data[0].Temperatur)
                        .enter()
                        .append("text");

                    var text2Labels = text2
                        .attr("x", "75%")
                        .attr("y", 475)
                        .attr("font-family", "Open Sans, sans-serif")
                        .attr("font-size", 75)
                        .attr("fill", "green")
                        .text(data[0].Temperatur + " \u00B0C");
                })
            }, 3000);

d3.选择全部(“svg”).remove()
谢谢!但是,在我的代码中包含这一点是一种优雅的方式,因为我在前面的函数中使用了另一个setInterval函数来尝试它,但是它工作得不是很好!在添加新SVG之前运行它。请注意,D3方法是更新现有的可视化,而不仅仅是重新绘制。D3网站上有很多关于这方面的教程。