Javascript 将SVG节点的多个实例添加到DOM

Javascript 将SVG节点的多个实例添加到DOM,javascript,svg,snap.svg,Javascript,Svg,Snap.svg,我有一个SVG文件列表,所以我用SnapSVG加载它们。 现在,我想随机地将每个SVG的多个实例添加到一个容器中,以使其中一些实例得到重复 问题是,当我添加一个已经添加的时,第一个就消失了 var objects; // pretend this is a list of objects which are SVG files loaded with SnapSVG. for (var i = 0; i < NUM_OBJECTS; i++) { let

我有一个SVG文件列表,所以我用SnapSVG加载它们。 现在,我想随机地将每个SVG的多个实例添加到一个容器中,以使其中一些实例得到重复

问题是,当我添加一个已经添加的时,第一个就消失了

    var objects; // pretend this is a list of objects which are SVG files loaded with SnapSVG.

    for (var i = 0; i < NUM_OBJECTS; i++) {
        let r = getRandomInteger(0, svgs.length - 1);

        container.appendChild( objects[r].node );
    }
我假设对象仍然持有对节点的引用(因为它可以在将来的迭代中再次添加)

但是如果我们再次抓取节点并将其添加到DOM中,之前添加的节点就会消失,这让我认为它是同一个节点,也是唯一一个节点实例

这有意义吗?如果是这样,有没有办法克隆SVG对象或类似对象?

DOM节点(无论是HTML还是SVG)不能位于多个位置(任何节点都指向其父节点)

必须使用克隆节点。

DOM节点(无论是HTML还是SVG)不能位于多个位置(任何节点都指向其父节点)

必须使用克隆节点

container.appendChild( objects[r].node );