Estaba buscando la mejor respuesta en términos de rendimiento mientras trabajaba en un DOM importante.
La respuesta de eyelidlessness fue señalar que con javascript el rendimiento sería el mejor.
Hice las siguientes pruebas de tiempo de ejecución en 5,000 líneas y 400,000 caracteres con una composición DOM compleja dentro de la sección para eliminar. Estoy usando una ID en lugar de una clase por una razón conveniente cuando uso javascript.
Usando $ .unwrap ()
$('#remove-just-this').contents().unwrap();
201.237ms
Usando $ .replaceWith ()
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156,983 ms
Usando DocumentFragment en 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 ms
Conclusión
En cuanto al rendimiento, incluso en una estructura DOM relativamente grande, la diferencia entre usar jQuery y javascript no es enorme. Sorprendentemente $.unwrap()
es más costoso que $.replaceWith()
. Las pruebas se han realizado con jQuery 1.12.4.