वर्तमान में स्वीकृत उत्तर innerHTML
धीमा होने के बारे में गलत है (कम से कम IE और क्रोम में), जैसा कि m93a ने सही उल्लेख किया है।
Chrome और FF नाटकीय रूप से इस विधि का उपयोग करके तेज़ हैं (जो संलग्न jquery डेटा को नष्ट कर देगा):
var cNode = node.cloneNode(false);
node.parentNode.replaceChild(cNode, node);
दूर के एफएफ और क्रोम के लिए दूसरा, और आईई में सबसे तेज:
node.innerHTML = '';
InnerHTML आपके ईवेंट हैंडलर को नष्ट नहीं करेगा या jquery के संदर्भों को तोड़ देगा , इसे यहाँ समाधान के रूप में भी सुझाया गया है:
https://developer.mozilla.org/en-US/docs/Web/API/Element.innerHTML ।
सबसे तेज़ DOM हेरफेर विधि (अभी भी पिछले दो की तुलना में धीमी) रेंज रिमूवल है, लेकिन IE9 तक रेंज समर्थित नहीं हैं।
var range = document.createRange();
range.selectNodeContents(node);
range.deleteContents();
उल्लिखित अन्य विधियां तुलनीय प्रतीत होती हैं, लेकिन इनरएचटीएमएल की तुलना में बहुत अधिक धीमी है, बाहरी, jquery (1.1.1 और 3.1.1) को छोड़कर, जो कि किसी भी चीज़ की तुलना में काफी धीमी है:
$(node).empty();
यहाँ साक्ष्य:
http://jsperf.com/innerhtml-vs-removechild/167 http://jsperf.com/innerhtml-vs-removechild/300
https://jsperf.com/remove-all-child-elements-of-a-a डोम-नोड-इन-जावास्क्रिप्ट
(jsperf रिबूट के लिए नया url क्योंकि पुराने url का संपादन कार्य नहीं कर रहा है)
Jsperf के "per-test-loop" को अक्सर "per-iteration" के रूप में समझा जाता है, और केवल पहली पुनरावृत्ति में नोड्स होते हैं, ताकि परिणाम निरर्थक हो, पोस्ट करने के समय इस थ्रेड में गलत तरीके से सेट किए गए परीक्षण थे।