我有一个<svg></svg>
,我想附加一个svg
元素,这是一个字符串。
例如:
var svg_string = '<g><text x="100" y="100">Hello</text></g>';
d3.select('svg').append(svg_string); // or something like that
我能这样做吗?不使用d3.xml
,因为我不想从某个地方加载svg文件。
我已经尝试过使用jQuery。
$('svg').append('<svg><g><text></text></g></svg>')
但我想知道是否有更好的方法,而不附加svg标签
更新:对不起,我没有说清楚。
我想将svg_string
附加到像
<svg><g id="test"></g></svg>
$('#test').append(svg_string)
感谢。
答案 0 :(得分:1)
正确的做法是明确声明每个属性或节点。
d3.select('svg').append("g").append("text").attr("x",100).attr("y",100).text("Hello");
如果你真的想添加html字符串,请使用:
d3.select('svg').html("<g><text x=\"100\" y=\"100\">Hello</text></g>");
示例:https://jsfiddle.net/ero38b49/
编辑:基于问题更新:
如果您希望在str
<g>
内加id
字符 var str = "<g><text x=\"100\" y=\"100\">Hello</text></g>";
d3.select('#test').html(str);
&#34;测试&#34;
<svg>
<g id="test">
<g><text y="100" x="100">Hello</text>
</g>
</g>
</svg>
这会给你:
append
示例:https://jsfiddle.net/ero38b49/1/
如果您希望将str
字符串<svg>
添加到<g>
(作为id
的兄弟d3.select("svg").html(d3.select("svg").html() + str);
&#34;测试&#34;)< / p>
<svg>
<g id="test"/>
<g><text y="100" x="100">Hello</text>
</g>
</svg>
这会给你:
Parent
Core (generate core jar)
web-service (generate service jar)
web-app(generate WAR)
..
答案 1 :(得分:1)
<svg><g id = 'svg-element'></g></svg>
<script>
var svg_string = '<g><text x="100" y="100">Hello</text></g>';
document.getElementById('svg-element').parentNode.innerHTML += svg_string;
</script>