2013-05-20 9 views
10

Ich möchte html aus dem Text Funktion wie diese in der Lage zurückzukehren:Wie HTML in d3 Textfunktion zurückgeben?

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

Versuchte &lt;br&gt; zu verwenden, aber die Arbeit didnot. Wie erreiche ich das?

+2

Ich weiß nicht über d3, aber ich bemerkte, dass Sie den Text als HTML-Code festlegen. Kannst du nicht etwas wie '.html' oder' .innerHTML' anstelle von '.text()'? – BBog

Antwort

14

EDITED ANTWORT

habe gerade bemerkt, dass Sie mit einem tspan hier arbeiten. Leider können Sie keine Zeilenumbrüche in SVG Textelemente einfügen. Mehrzeiliger Text mit SVG erfordert das Aufteilen des Textes selbst und das anschließende Festlegen des Attributs . D3 macht den Layoutprozess ziemlich einfach, aber es erfordert noch zusätzliche Arbeit.

Mehr Infos im Intro Absatz hier: http://www.w3.org/TR/SVG/text.html

ALTE ANTWORT (gilt, wenn HTML-Elemente verwenden, nicht svg)

D3 ein separates Verfahren hierfür hat: die html() Methode, die nur funktioniert wie text() aber unescaped. More info here. Also, einfach genug, Sie brauchen nur:

+2

funktioniert aus irgendeinem Grund nicht – Isaac