Javascript生成的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

我有一个脚本,通过jQuery将元素添加到内联SVG图像中,但新元素似乎没有显示出来。输出是完全有效的;我可以将它复制到原始文件中,重新加载它,它将渲染得很好。但是当脚本生成它时,新元素不可见

下面是一个复制问题的片段:


提前谢谢

如果元素不在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>