Javascript D3-单击时添加文本

Javascript D3-单击时添加文本,javascript,d3.js,Javascript,D3.js,当用户单击一个小的绘制节点(d3)时,我试图添加并删除一点文本。我有点击功能,但我正在努力添加一些文本。这是我所拥有的- .on("click",function(d){ d3.select(this) .append("text") .attr("dx", function(d){return -20}) .text(function(d){return d.depth}) .transition()

当用户单击一个小的绘制节点(d3)时,我试图添加并删除一点文本。我有点击功能,但我正在努力添加一些文本。这是我所拥有的-

.on("click",function(d){
          d3.select(this)
           .append("text")
    .attr("dx", function(d){return -20})
    .text(function(d){return d.depth})
            .transition()
            .duration(600)
            .attr("r",function(d){
                  return d.depth;
              })
            .attr("opacity", 0.1)
            .transition()
            .duration(2000)
            .attr("r",function(d){
                  return d.magnitude/1.5;
              })
            .attr("opacity", 0.8)
            //remove text here
        })
如果我没有像这样的文本的附加部分,那么它就可以正常工作了-

  .on("click",function(d){
          d3.select(this)
            .transition()
            .duration(600)
            .attr("r",function(d){
                  return d.depth;
              })
            .attr("opacity", 0.1)
            .transition()
            .duration(2000)
            .attr("r",function(d){
                  return d.magnitude/1.5;
              })
            .attr("opacity", 0.8)
        })

所以我只是想让文本弹出,然后删除动画完成后

请记住,您不能将
text
元素附加到任何元素中--它必须是
g
元素。@Larskothoff它被链接到了一个g上-我意识到它显示在dom上,我只是因为任何原因看不到它,可能需要样式?很难说<但是,code>text元素没有
r
属性。在没有转换的情况下,它可以工作吗?我想你可以尝试在d3.select(这个)元素的属性之后添加.text,我猜这是一个圆。我相信这是一个可能的解决办法