Eu estava procurando a melhor resposta em termos de desempenho ao trabalhar em um DOM importante.
A resposta do eyelidlessness foi apontando que usando javascript as performances seriam melhores.
Fiz os seguintes testes de tempo de execução em 5.000 linhas e 400.000 caracteres com uma composição DOM complexa dentro da seção a ser removida. Estou usando um ID em vez de uma classe por uma razão conveniente ao usar javascript.
Usando $ .unwrap ()
$('#remove-just-this').contents().unwrap();
201,237ms
Usando $ .replaceWith ()
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156,983ms
Usando DocumentFragment em 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,211ms
Conclusão
Em termos de desempenho, mesmo em uma estrutura DOM relativamente grande, a diferença entre o uso de jQuery e javascript não é enorme. Surpreendentemente, $.unwrap()
é mais caro do que $.replaceWith()
. Os testes foram feitos com jQuery 1.12.4.