Как скопировать и вставить SVG-узел, используя jQuery - PullRequest
7 голосов
/ 08 сентября 2011

У меня есть некоторые 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 ]

2 голосов
/ 05 октября 2011

Похоже, что решение можно получить с помощью функции jQuery $ .parseXML.

Благодарю вас.

1 голос
/ 09 сентября 2011

Может быть, рекурсивно создать копию и создать элементы, используя createElementNS

Как

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

(из Можно ли работать с jquery и Svg напрямую (без плагинов)? )

...