从已经包含类似内容的 DOM 开始
<svg id="svg0" width="600" height="300" xmlns="http://www.w3.org/2000/svg" version="1.1">
</svg>
...我想以编程方式修改元素,d3.select("#svg0")
以便最终得到
<svg id="svg0" width="600" height="300" xmlns="http://www.w3.org/2000/svg" version="1.1">
<text x="20" y="20">
Lorem ipsum
<tspan style="alignment-baseline:text-before-edge">dolor</tspan>
sit amet</text>
</svg>
这是我能得到的:
var $svg = d3.select("#svg0");
$svg.append("text").text("Lorem ipsum ")
.attr({x:"20", y:"20"});
看起来其余的应该很容易,但我在过去的两个小时里尝试了所有“明显”的事情来完成这项工作,但没有成功。1
完成上述任务需要做什么?
1我尝试了太多东西来描述它们。可以说,当用作 setter 时,该text
方法会清除对象之前textContent
的所有内容。这意味着,有效地,此方法只能调用一次,这排除了依赖于第二次调用来添加“sit amet”片段的解决方案。)text
.text(...)