Je cherchais la meilleure réponse en termes de performances tout en travaillant sur un DOM important.
La réponse de eyelidness soulignait qu'en utilisant javascript les performances seraient les meilleures.
J'ai fait les tests de temps d'exécution suivants sur 5 000 lignes et 400 000 caractères avec une composition DOM complexe dans la section à supprimer. J'utilise un identifiant au lieu d'une classe pour des raisons pratiques lorsque j'utilise javascript.
Utiliser $ .unwrap ()
$('#remove-just-this').contents().unwrap();
201,237 ms
Utiliser $ .replaceWith ()
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156,983 ms
Utilisation de 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
Conclusion
Sur le plan des performances, même sur une structure DOM relativement grande, la différence entre l'utilisation de jQuery et de javascript n'est pas énorme. Étonnamment, $.unwrap()
c'est plus cher que $.replaceWith()
. Les tests ont été effectués avec jQuery 1.12.4.