D3.js d3js中节点文本中的换行符
我正在使用D3.js d3js中节点文本中的换行符,d3.js,D3.js,我正在使用.html(函数(d){return d.name+“”+d.label;})在节点文本中添加一个换行符,但它不起作用。这是JSFIDLE。否,文本DOM中不考虑br标记 您必须使用tspan并对其进行定位 .html(function (d) { var x = d3.select(this).attr("x");//get the x position of the text var y = d3.select(this).attr("dy");/
.html(函数(d){return d.name+“
”+d.label;})
在节点文本中添加一个换行符,但它不起作用。这是JSFIDLE。否,文本DOM中不考虑br标记
您必须使用tspan并对其进行定位
.html(function (d) {
var x = d3.select(this).attr("x");//get the x position of the text
var y = d3.select(this).attr("dy");//get the y position of the text
var t = "<tspan x="+x+" dy="+(+y+10)+">"+d.label+"</tspan>";
return d.name + t;//appending it to the html
}
.html(函数(d){
var x=d3.select(this).attr(“x”);//获取文本的x位置
var y=d3.select(this).attr(“dy”);//获取文本的y位置
变量t=“”+d.label+”;
返回d.name+t;//将其附加到html
}
完整工作代码
希望这有帮助!
在svg中也能工作。请使用tspan
:
.html(function (d) {
return "<tspan x='0' dy='1.2em'>" + d.name + "</tspan>"
+ "<tspan x='0' dy='1.2em'>" +d.label + "</tspan>";
})
.html(函数(d){
返回“+d.name+”
+“+d.标签+”;
})
有关自动换行,请参见Mike Bostock。在这里,我更新了我编写的代码换行函数:函数wordwrap2(text){return text.split(“-”)}
,并在对节点进行分层时使用它:。每个(函数(d){
如果(d.标签)
{
var r=d.name;
var s=d.标签;
var s=d.name+“-”+d.label;
变量行=wordwrap2(s)
对于(变量i=0;i
}
})
谢谢Cyril,工作正常。