2013-05-20 42 views
10

我希望能夠從文本功能這樣的返回HTML:如何在d3文本函數中返回html?

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

儘量選用&lt;br&gt;,但因此未工作。我如何實現這一目標?

+2

我不知道d3,但我注意到你設置的文本爲html代碼。你不能做'.html'或'.innerHTML'而不是'.text()'嗎?由於某種原因, – BBog

回答

14

EDITED ANSWER

只注意到你與TSPAN在這裏工作。不幸的是,你不能在svg文本元素中插入換行符。使用SVG多行文本需要自行分解文本,然後通過設置dy屬性將其文本排除。 D3使佈局過程非常簡單,但仍需要額外的工作。在介紹段落這裏

更多信息:在html()方法,其工作只是:http://www.w3.org/TR/SVG/text.html

OLD ANSWER

D3具有這種單獨的方法(如果使用的HTML元素,而不是SVG適用)像text()但未轉義。 More info here。所以,很容易,你只需要:

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

不工作 – Isaac