Я искал лучший ответ с точки зрения производительности , работая над важной DOM.
Ответ безглазости указывал на то, что использование javascript будет лучшим.
Я провел следующие тесты времени выполнения для 5000 строк и 400000 символов со сложной структурой DOM внутри раздела, который нужно удалить. Я использую идентификатор вместо класса по удобной причине при использовании javascript.
Использование $ .unwrap ()
$('#remove-just-this').contents().unwrap();
201,237 мс
Использование $ .replaceWith ()
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156.983 мс
Использование DocumentFragment в javascript
var element = document.getElementById('remove-just-this');
var fragment = document.createDocumentFragment();
while(element.firstChild) {
fragment.appendChild(element.firstChild);
}
element.parentNode.replaceChild(fragment, element);
147,211 мс
Вывод
С точки зрения производительности даже в относительно большой структуре DOM разница между использованием jQuery и javascript невелика. На удивление $.unwrap()
дороже $.replaceWith()
. Тесты проводились с помощью jQuery 1.12.4.