如何使用jQuery复制和粘贴SVG节点

时间:2011-09-08 14:57:44

标签: jquery svg copy-paste treenode

我在网页中嵌入了一些SVG,需要复制特定的SVG节点(包括它的子节点),然后将其粘贴回DOM中。唯一的问题是,SVG节点在粘贴后不会出现,这可能是因为它是命名空间的。

那么,如何复制和粘贴命名空间的SVG节点?我想它会是某种递归函数。

P.S。目前正在使用jQuery的clone()方法来复制SVG节点。

测试SVG:

<g>

    <rect>
    <text></text>

    <g>

        <circle>
        <rect>

    </g>

</g>

如何递归地将该SVG添加到DOM中,记住应该使用createElementNS,因为SVG是命名空间的。

2 个答案:

答案 0 :(得分:2)

似乎可以通过使用jQuery $ .parse XML函数来实现解决方案。

我感谢你。

答案 1 :(得分:1)

可能使用createElementNS

递归创建副本并创建元素

$(mySvg).append(document.createElementNS("http://www.w3.org/2000/svg", "circle")); 

(来自Is it possible to work with jquery and Svg directly (no plugins)?