17

我希望能够从这样的文本函数返回 html:

textEnter.append("tspan")
          .attr("x", 0)
          .text(function(d,i) {
             return 'some text' + '<br/>' + d.someProp;
           })

尝试使用&lt;br&gt;,但没有用。我如何实现这一目标?

4

1 回答 1

22

编辑的答案

刚刚注意到您在这里使用 tspan。不幸的是,您不能在 svg 文本元素中插入换行符。使用 SVG 的多行文本需要自己分解文本,然后通过设置dy属性来布局。D3 使布局过程非常简单,但仍然需要额外的工作。

此处介绍段落中的更多信息:http: //www.w3.org/TR/SVG/text.html

旧答案(适用于使用 html 元素,而不是 svg)

D3 对此有一个单独的方法:该html()方法,它的工作原理与此类似text(),但未转义。更多信息在这里。所以,很容易,你只需要:

textEnter.append("tspan")
      .attr("x", 0)
      .html(function(d,i) {
         return 'some text' + '<br/>' + d.someProp;
       })
于 2013-05-20T21:06:53.597 回答