點擊第一下沒有反應,然后再點擊一下刪除了3個,然后再點擊依次刪除一個
<!DOCTYPE HTML>
<html>
<head>
? ?<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
? ?<title>無標題文檔</title>
</head>
<body>
<div id="content">
? ?<h1>html</h1>
? ?<h1>php</h1>
? ?<h1>javascript</h1>
? ?<h1>jquery</h1>
? ?<h1>java</h1>
</div>
<script type="text/javascript">
? ?function clearText() {
? ? ? ?var content=document.getElementById("content");
? ? ? ?var len=content.childNodes.length;
? ? ? ?for(var i=0;i<len;i++){
? ? ? ? ? ?var x=content.removeChild(content.childNodes[i]);
? ? ? ?}return x;
? ?}
</script>
<button onclick="clearText()">清除節(jié)點內(nèi)容</button>
</body>
</html>
chrome 報錯了給這一句
? ? ? ? ? ?var x=content.removeChild(content.childNodes[i]);
?Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'
到底哪里有問題呢?
2017-11-03
我自己在本子上劃了劃,弄明白了,節(jié)點的個數(shù)在變化,索引值也在變化。最簡單的辦法就是換成從大到小刪除。
2017-11-03
當你刪除節(jié)點的子節(jié)點的時候,節(jié)點的子節(jié)點個數(shù)在不斷的變化,所以你刪除的效果和你想象中的不一樣樣,直接暴力解決方式function clearText(){
?var content=document.getElementById("content");
content.innerHTML="";
}