JavaScript相關 for循環(huán)
<!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"); ??for(var?i=0;i<content.childNodes.length;i++){ ????var?cn=content.childNodes[i];?? ????content.removeChild(cn); ??} } </script> <button?onClick="clearText()">清除節(jié)點內容</button> </body> </html>
<!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"); ??for(var?i=content.childNodes.length-1;i>=0;i--){ ?????var?childNode?=?content.childNodes[i]; ?????content.removeChild(childNode);? ??} } </script> <button?onClick="clearText()">清除節(jié)點內容</button> </body> </html>
為什么第二個能全部清除 而第一個不能啊
2017-01-05
使用for循環(huán)清除節(jié)點例如:如下代碼會導致每次點擊都只能清除部分節(jié)點。這是因為每次清除節(jié)點時childNodes的長度(即tt.length)都縮短1,而每次I增大1,這樣會導致i的值還沒有達到最初的tt.length時循環(huán)會比提前結束;
var tt=content.childNodes;
?for(i=0;i<tt.length;i++);{
? ? ?content.removeChild(tt[1]);
?}
簡述:正序刪除與倒序刪除的差別
來自:MotoDoctor的解釋。僅供參考