我有这个代码
.text(function(d){return d.name});
现在我想检查 d.name 的长度,如果它超过 10 个将它分成两行我写了这段代码,但它不起作用
var nodeEnter = node.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) { return "translate(" + source.x0 + "," + source.y0 + ")"; })
.on("click", click);
nodeEnter.append("circle")
.attr("r", 1e-6)
.style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; });
var name1="asdsdadasdasdas";
nodeEnter.append("text")
.attr("x", function(d) { return d.children || d._children ? -40 : -25; })
.attr("dy",function(d){return d.children || d._children ? "-2em" : "2em"})
.attr("text-anchor", "end")
.attr("height",50)
.attr("width",50)
.text(function(d){
var str=d.name;
if(str.length>10){
var txt1=str.slice(0,10);
txt1+="<br/>";
txt2=str.slice(10,str.length);
return txt1+txt2;
}else{
return d.name;
}
})
.attr("transform",function(d){
return "rotate(45)";
})
.style("fill-opacity", 1e-6);