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>';
Я просто как-то элегантнее не видел. Ладно уж parentElement может перестроиться, но closest обязан работать, чтобы не было таких вот while головного мозга.
> querySelector для быдлокодеров
Не правда. Очень крутая фишка, о которой вы возможно не знали это поиск в элементе другого элемента. Это и было круто в jQuery $('.some', '.some-wrapper') - оно отсекало все ненужное.
Но jQuery и сам Sizzle стали не нужна когда появился querySelectorAll.
То же самое:
let element = document.querySelectorAll('#shell');
element[0].querySelectorAll('.somethin-in-shell');
или еще прикольнее:
let element = document.querySelectorAll('#shell');
element[0].querySelectorAll('*'); // вообще все что внутри
И тогда не понятно как вы их умудряетесь получать? везде тыкаете id а потом прямо пишете для div#shell обращение типа shell.dataset.shit-code = 'ololo'; ?
Без этих остается только прямое обращение к объекту в window ...