<!DOCTYPE html> <html> <head> <script> function boom() { var j = 0; var a = document.getElementById("a"); var r = document.createRange(); r.setStart(a.childNodes[0], 0); r.setEnd(a.childNodes[1], 0); function f() { if (++j >= 2) { document.removeEventListener("DOMNodeRemoved", f, false); } r.extractContents(); } document.addEventListener("DOMNodeRemoved", f, false); r.extractContents(); } </script> </head> <body onload="boom();"> <div id="a"><span><span></span></span>X</div> </body> </html>