在添加d3.js之前清除svg中的文本

时间:2013-07-26 11:36:46

标签: d3.js

我想在svg中添加新值之前清除文本。

svg = d3.select("body").append("svg")
        .attr("width", width)
        .attr("height", height)
        .append("g")
        .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");

svg.append("text")
      .attr("dy", ".35em")
      .style("text-anchor", "middle")
    .text(function(d) 
    {     
        return months[RAG_input];
    });

文本将根据月份[RAG_input]数组中的值进行更改。 months []包含月份,并根据RAG_input显示相应的数组项。

目前正在覆盖。有没有办法在写作之前清除文本。

我已将其添加到小提琴http://jsfiddle.net/ThomsonKrish/wjMHE/1/

1 个答案:

答案 0 :(得分:1)

您可以在选择文本之前检查文本元素是否已存在。这样,您就可以重用现有的文本元素。

var text = svg.select("text");
if(text.empty()) {
  text = svg.append("text").attr("dy", ".35em").style("text-anchor", "middle");
}
text.text(function() {
  return months[RAG_input];
});