參考代碼是怎樣執(zhí)行的
每次循環(huán)以后,content.childNodes.length的值為什么會(huì)發(fā)生變化,變量content是在for循環(huán)外聲明的啊
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); ???} ?}
2016-03-13
那個(gè),你是不是忽視了這句:content.removeChild(childNode);
你都刪掉一個(gè)子節(jié)點(diǎn)了,長(zhǎng)度肯定會(huì)變化呀,content.childNodes.length的值肯定每次都會(huì)減1;
問(wèn)題是,參考代碼跟content的長(zhǎng)度有半毛錢(qián)關(guān)系!?。?/p>
先說(shuō)for循環(huán)的執(zhí)行條件,語(yǔ)句一是賦值語(yǔ)句,只是在開(kāi)始的時(shí)候執(zhí)行一次,只執(zhí)行一次?。?!
也就是說(shuō),content.childNodes.length只執(zhí)行了一次,后面的循環(huán)跟它木有半毛錢(qián)關(guān)系,它只是給變量i一個(gè)初始值而已
然后再說(shuō)下循環(huán)條件,i>=0;這個(gè)很容易懂吧,只要只要符合條件就會(huì)循環(huán)一次,
然后i--也很容易懂得吧,循環(huán)一次i的值就減1,
然后在說(shuō)下循環(huán)體吧,就是每次都刪除下標(biāo)為i的節(jié)點(diǎn)而已,
首先第一次循環(huán),i的值是length-1,很明顯是刪除的是數(shù)組的最后一個(gè)對(duì)象,數(shù)組刪掉一個(gè)對(duì)象,length肯定減少一個(gè),然后i的值也減少一個(gè),所以之后每次的循環(huán)其實(shí)刪除的都是數(shù)組最后的一個(gè)對(duì)象,直到刪除最后一個(gè)節(jié)點(diǎn),i的值成了負(fù)值退出循環(huán)。
所以,我覺(jué)得樓主可以多多參考一下這個(gè)w3school