Сообщение от xShift
|
ruslan_mart, а unwrap/wrap это не маньячно?
К примеру:
for(let i of e) {
let parent = i.parentElement;
while (i.firstChild) {
parent.insertBefore(i.firstChild, i);
}
parent.removeChild(i);
}
против
i.outerHTML = '<div class="wrapper">'+ i.outerHTML +'</div>';
Я просто как-то элегантнее не видел.
|
вот, способ с сохранением объектов-узлов:
var elem = document.querySelector('#id1');
var range = document.createRange();
range.selectNodeContents(elem);
elem.parentNode.replaceChild(range.extractContents(), elem);
это unwrap, то что у тебя в цикле. Собственно, вытаскиваем весь контент из элемента, и заменяем элемент на него. Два изменения дома - вытаскивание контента и замена.
wrap аналогично.
outerHTML/innerHTML тут нафиг не нужен.
матчасцъ -
https://learn.javascript.ru/range-textrange-selection