在处理重要的 DOM 时,我一直在寻找性能方面的最佳答案。
eyelidlessness 的回答是指出使用 javascript 的性能是最好的。
我已经对 5,000 行和 400,000 个字符进行了以下执行时间测试,其中要删除的部分内部具有复杂的 DOM 组合。在使用 javascript 时,出于方便的原因,我使用 ID 而不是类。
使用 $.unwrap()
$('#remove-just-this').contents().unwrap();
201.237 毫秒
使用 $.replaceWith()
var cnt = $("#remove-just-this").contents();
$("#remove-just-this").replaceWith(cnt);
156.983 毫秒
在 JavaScript 中使用 DocumentFragment
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 完成的。