為什么是for(var i=x.childNodes.length-1;i>=0;i--)
function clearText() {
? var x=document.getElementById("content");
? for(var i=x.childNodes.length-1;i>=0;i--){
? ? ? var childNode=x.childNodes[i];
? ? ? x.removeChild(childNode);
? } ?
}
function clearText() {
? var x=document.getElementById("content");
? for(var i=x.childNodes.length-1;i>=0;i--){
? ? ? var childNode=x.childNodes[i];
? ? ? x.removeChild(childNode);
? } ?
}
2016-04-27
舉報
2016-04-27
?for(var i=x.childNodes.length-1;i>=0;i--)這句是要倒著刪除,這個應該能理解吧
這個練習題正著刪除倒著刪除都能做,倒著刪除相比不用考慮太多,正常寫就好,因為總是從最后一個刪除,正著刪除的話需要從第一個刪除,也就是
for(var i=0;i<x.childNodes.length;i++){
? ? ? var childNode=x.childNodes[0];//總從第一個刪除
? ? ? x.removeChild(childNode);
? }
如果按
for(var i=0;i<x.childNodes.length;i++){
? ? ? var childNode=x.childNodes[i];
? ? ? x.removeChild(childNode);
? } ?
這種寫法,會漏刪,導致一次刪不干凈。
比如childNode讀出來{h1,h2,h3,h4,h5}
然后i=0,刪了h1,沒問題,繼續
i=1,此時childNode變成了{h2,h3,h4,h5},刪除childNode[1],就是刪除了h3
這里就看出來了吧,會漏刪,i=3的時候就沒東西可刪了,然后這次循環就結束了,但是還有h2,h4被漏下來了。