清除d3js元素更新数据

时间:2014-05-05 15:47:39

标签: javascript jquery json svg d3.js

我使用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);

0 个答案:

没有答案