Şu anda kabul edilen cevap, innerHTML
m93a'nın doğru şekilde belirtildiği gibi, daha yavaş (en azından IE ve Chrome'da) olma konusunda yanlıştır .
Chrome ve FF, bu yöntemi kullanarak (ekli jquery verilerini yok edecek) önemli ölçüde daha hızlıdır:
var cNode = node.cloneNode(false);
node.parentNode.replaceChild(cNode, node);
FF ve Chrome için uzak saniyede ve IE'de en hızlı:
node.innerHTML = '';
InnerHTML , etkinlik işleyicilerinizi yok etmez veya jquery referanslarını kesmez , ayrıca burada bir çözüm olarak önerilmektedir:
https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML .
En hızlı DOM manipülasyon yöntemi (hala önceki ikisinden daha yavaştır) Aralık kaldırmadır, ancak IE9'a kadar aralıklar desteklenmez.
var range = document.createRange();
range.selectNodeContents(node);
range.deleteContents();
Bahsedilen diğer yöntemler karşılaştırılabilir gibi görünebilir, ancak outHT, jquery (1.1.1 ve 3.1.1) dışında, her şeyden önemli ölçüde daha yavaş olan innerHTML'den çok daha yavaştır:
$(node).empty();
Kanıt burada:
http://jsperf.com/innerhtml-vs-removechild/167 http://jsperf.com/innerhtml-vs-removechild/300
https://jsperf.com/remove-all-child-elements-of-a- dom-node-in-javascript
(Eski url'yi düzenlemek çalışmadığı için jsperf yeniden başlatma için yeni url)
Jsperf'in "test başına döngü" genellikle "yineleme başına" olarak anlaşılır ve yalnızca ilk yinelemenin kaldırılacak düğümleri vardır, bu nedenle sonuçlar anlamsızdır, gönderme sırasında bu iş parçacığında yanlış ayarlanmış testler vardı.