0

我想在 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];
    });

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

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

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

4

1 回答 1

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];
});
于 2013-07-26T11:57:56.843 回答