2015-06-17 2 views
1

У нас есть существующий svg-документ в том, что мы хотим заменить групповой элемент на новый. Можно ли сделать это с помощью Snap.svg?Как манипулировать существующими элементами группы с помощью Snap.svg

var oldGroup = Snap.select("[id='" + oldGroupId + "']"); 

oldGroup.outerSVG(newGroup); //This is what I want to do but outerSVG is readonly 

ответ

1

Вы не можете перемещать элемент, используя только externalSVG. Вы не включили достаточно информации, чтобы дать полный правильный ответ, так как мы не можем увидеть, что существующие элементы, но это может быть что-то вроде ..

var parent = oldGroup.parent(); 
oldGroup.remove(); 
parent.add(newGroup) 

Это будет зависеть от того, что «новая_группа» есть. Если это элемент DOM, я думаю, что это сработает. Если это всего лишь SVG Markup, вам, вероятно, нужно будет что-то вроде

parent.add(Snap.parse(newGroup)); 
+0

Отлично! Спасибо! Работает как в Chrome, так и в IE 9. – Tylland

+0

Это может повлиять на порядок рисования, но сейчас это не проблема. – Tylland

+0

Если это так, вы можете использовать element.after()/before(), чтобы добавить новый элемент в нужное место, прежде чем удалять старый. – Ian