Javascript 为svg元素中的文本标记添加样式

Javascript 为svg元素中的文本标记添加样式,javascript,jquery,svg,Javascript,Jquery,Svg,我动态创建了一个图形,因此svg包含一个包含以下代码的部分。 bt我无法给这个类指定背景色。。我用attr()函数动态地尝试了它,但它不是那样工作的。。 是否仍然可以指定类似svg:text的css <text id="circleText_Persons-bruno-waterfield" font-size="14" class="circleText" font-family="Tahoma" text-anchor="middle" background-color="#00000

我动态创建了一个图形,因此svg包含一个包含以下代码的部分。 bt我无法给这个类指定背景色。。我用attr()函数动态地尝试了它,但它不是那样工作的。。 是否仍然可以指定类似svg:text的css

<text id="circleText_Persons-bruno-waterfield" font-size="14" class="circleText" font-family="Tahoma" text-anchor="middle" background-color="#000000" font-weight="900" display="block" x="-1.8714285714285717" y="28.711414285714287" fill-opacity="1" stroke-opacity="1" style="fill: #666666;">Bruno Waterfield</text>

将所选颜色的
rect
放在符合文本边界框的
文本
元素后面。SVG文本没有用于设置背景颜色的流框;你必须做一个。

我编辑了这个问题。。。因此,如果我添加一个矩形,它会像svg:rect:text@SamDaSilva不,您需要生成
svg:rect
并将其放在文本元素之前,然后将其x、y、宽度和高度设置为与以下文本元素相同(一旦知道这些值)。
      nodeEnter.append("svg:text") 
  .attr("id", function(d){  return "circleText_" + d.name})
      .attr("font-size", function(d){return 14;}) //returnNodeSize(d) / 2
      .attr("class",  function(d){return "circleText"}).attr("font-family", "Tahoma")
      .attr("text-anchor","middle")
      .attr("background-color","#000000")
      .attr("font-weight","900")
      //returnNodeSize(d)+returnNodeSize(d)/1.8;
       .text(function(d){ 

         return toTitleCase(d.name));