I am starting with d3.js, and am trying to create a network graph each circle of which contains a label.
What I want is a line break an svg text.
What I am trying to do is to break the text into multiple <tspan>
s, each with x=0 and variable y to simulate actual lines of text. The code I have written gives some unexpected result.
var text = svg.selectAll(text).data(force.nodes()).enter().append(text);
text
.text(function (d) {
arr = d.name.split( );
var arr = d.name.split( );
if (arr != undefined) {
for (i = 0; i < arr.length; i++) {
text.append(tspan)
.text(arr[i])
.attr(class, tspan + i);
}
}
});
In this code am splitting the text string by white space and appending the each splitted string to tspan. But the text belonging to other circle is also showing in each circle. How to overcome this issue?
Here is a JSFIDDLE http://jsfiddle.net/xhNXS/ with only svg text
Here is a JSFIDDLE http://jsfiddle.net/2NJ25/16/ showing my problem with tspan.