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

OLD ANSWER (svg ではなく html 要素を使用する場合に適用)

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 に答える