2013-07-26 59 views
0

我想在svg中添加新值之前清除文本。在添加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]數組中的值更改。月份[]包含月份,並基於RAG_input顯示相應的數組項目。

目前它正在覆蓋。寫作前有沒有辦法清除文本?

我在小提琴http://jsfiddle.net/ThomsonKrish/wjMHE/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]; 
}); 
+0

添加小提琴鏈接 - http://jsfiddle.net/ThomsonKrish/wjMHE/1/ –