Javascript生成的SVG未更新
我有一个脚本,通过jQuery将元素添加到内联SVG图像中,但新元素似乎没有显示出来。输出是完全有效的;我可以将它复制到原始文件中,重新加载它,它将渲染得很好。但是当脚本生成它时,新元素不可见 下面是一个复制问题的片段:Javascript生成的SVG未更新,javascript,jquery,svg,Javascript,Jquery,Svg,我有一个脚本,通过jQuery将元素添加到内联SVG图像中,但新元素似乎没有显示出来。输出是完全有效的;我可以将它复制到原始文件中,重新加载它,它将渲染得很好。但是当脚本生成它时,新元素不可见 下面是一个复制问题的片段: 提前谢谢 如果元素不在svg名称空间中,则不会看到任何svg输出 尝试用以下内容替换脚本片段: var slices = 10; for(i = 0; i < 360; i += 360 / slices) { var element = document.crea
提前谢谢 如果元素不在svg名称空间中,则不会看到任何svg输出 尝试用以下内容替换脚本片段:
var slices = 10;
for(i = 0; i < 360; i += 360 / slices) {
var element = document.createElementNS("http://www.w3.org/2000/svg", "polyline");
element.setAttribute("points", "0,0 -10,100 10,100");
element.setAttribute("transform", "rotate(" + i + ")");
$('#rotate').append(element);
}
var切片=10;
对于(i=0;i<360;i+=360/片){
var element=document.createElements(“http://www.w3.org/2000/svg“,“多段线”);
setAttribute(“点”,“0,0-10100 10100”);
setAttribute(“变换”、“旋转”(+i+));
$('#rotate')。追加(元素);
}
非常感谢@Erik Dahlström,我可能会对此做出贡献。以下是我为构建svg树而定义的函数:
Node.prototype.svg_grow = function(node_name, node_attr) {
n = document.createElementNS("http://www.w3.org/2000/svg", node_name);
this.appendChild(n);
if (typeof node_attr !== 'undefined') {
for (key in node_attr) {
n.setAttribute(key, node_attr[key]);
}
}
return n;
}
因此,您可以在任何节点上使用svg\u grow()
,如下所示:
s_g = document.getElementById("parent");
s_rect = s_g.svg_grow('rect', {x:0, y:0, width:480, height:640});
你要做什么
<g id="parent">
<rect x="0" y="0" width="480" height="640" />
</g>