為什么for循環(huán)那里的i - - 換成 i + + 就可以倒著一個一個刪除呢?而i - - 是一次性全部刪除。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標(biāo)題文檔</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");
? // 在此完成該函數(shù)
? var x=content.childNodes;
? for(var i=x.length-1; i>=0 ; i--){
????? content.removeChild(x[i]);
? }
}
</script>
<button onclick="clearText()">清除節(jié)點內(nèi)容</button>
</body>
</html>
2018-10-12
假設(shè)你所說的 i++ 是下面這個:
上面代碼實現(xiàn)的效果也不是一個一個地刪除,而是跳著刪除。如點按鈕一下,下面 5 個標(biāo)簽中的 1、3、5 會先刪除,再點按鈕一下才會把剩下的 2 刪除,第三次按鈕才把 4 刪除。
因為當(dāng)先把第一個子節(jié)點刪除后,后面的子節(jié)點的索引就重新編號了:原來的第2個子節(jié)點會變成第1個子節(jié)點,第3個子節(jié)點會變成第2個子節(jié)點,但循環(huán)變量 i 是從 0、1、2... 順序增長,所以會出現(xiàn)上述跳著刪除的現(xiàn)象。
但“i--”(如你所寫的代碼)的情況下是從最后一個子節(jié)點開始刪除,并不會影響前面子節(jié)點的索引值,所以一次遍歷完 i 后,即可全部刪除子節(jié)點。