<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> </head> <body> <div id="content">1 <h1>html</h1>2 <h1>php</h1>3 <h1>javascript</h1>4 <h1>jquery</h1>5 <h1>java</h1>6 </div> <script type="text/javascript"> function clearText() { var content=document.getElementById("content"); // 在此完成该函数 //法一,一次性清除节点内容 var l = content.childNodes.length; for(var i=0;i<l;i++){ if(content.childNodes[i].nodeType!=1){ continue; }else{ var x= content.removeChild(content.childNodes[i]); document.write(x.innerHTML+"<br/>"); x=null; } } //法二,一次性清除节点内容 /* for(var i=content.childNodes.length-1;i>=0;i--){ var chnode=content.childNodes[i]; content.removeChild(chnode); } */ //法三,多次方清除节点内容 /* for(var i=0;i<content.childNodes.length;i++){ var chnode=content.childNodes[i]; content.removeChild(chnode); } */ } </script> <button onclick="clearText()" title="悬浮title">清除节点内容</button> </body> </html>
消失原因是执行document.write时文档流已关闭,而document.write是打开文档流再写入,此时是一个新的页面,按钮在旧的页面上,所以看不到了。具体可以查查“为什么document.write()会清空原来的内容”,有前辈给了详细例子与解释。