第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

i=contnet.childNodes.length-1和i=0;i<content.childNodes.length的區(qū)別

在寫循環(huán)的時(shí)候

參考答案是:for(i=content.childNodes.length-1;i>=0;i--)

我寫的是:for(i=0;i<content.childNodes.length;i++)

其他部分都一致,結(jié)果我的點(diǎn)擊三次才能全部刪除,參考答案寫法一次就能實(shí)現(xiàn),請(qǐng)問這個(gè)是有什么原因嗎?

正在回答

2 回答

在執(zhí)行var x=removeChild(child[i])后,x后的節(jié)點(diǎn)會(huì)自動(dòng)向前移,占據(jù)x節(jié)點(diǎn)的位置,導(dǎo)致位置發(fā)生變化(前移1),所以再次removeChild(child[i])的時(shí)候,會(huì)跳過一個(gè)節(jié)點(diǎn)。

如:x,y,z? ? 此時(shí)i=0,執(zhí)行removeChild后,i=1,而節(jié)點(diǎn)數(shù)組變?yōu)椋簓,z;此時(shí)下次循環(huán)將刪除z而不是y,從而導(dǎo)致y被遺漏。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

心為形役 提問者

您的回答太棒了,謝謝!
2016-05-05 回復(fù) 有任何疑惑可以回復(fù)我~
#2

心為形役 提問者

但是我還是不理解為什么參考答案里面的寫法就不會(huì)有這個(gè)問題呢?
2016-05-05 回復(fù) 有任何疑惑可以回復(fù)我~

這個(gè)練習(xí)題正著刪除倒著刪除都能做,倒著刪除相比不用考慮太多,正常寫就好,因?yàn)榭偸菑淖詈笠粋€(gè)刪除,正著刪除的話需要從第一個(gè)刪除,也就是

for(var i=0;i<x.childNodes.length;i++){

? ? ? var childNode=x.childNodes[0];//總從第一個(gè)刪除

? ? ? x.removeChild(childNode);

? }

如果按a=x.childNodes.length

for(var i=0;i<a;i++){}這種寫法,會(huì)漏刪,導(dǎo)致一次刪不干凈。

比如childNode讀出來{h1,h2,h3,h4,h5}

然后i=0,刪了h1,沒問題,繼續(xù)

i=1,此時(shí)childNode變成了{(lán)h2,h3,h4,h5},刪除childNode[1],就是刪除了h3

這里就看出來了吧,會(huì)漏刪,i=3的時(shí)候就沒東西可刪了,然后這次循環(huán)就結(jié)束了,但是還有h2,h4被漏下來了。

同理,如果按for(var i=0;i<x.childNodes.length;i++)這種寫法,i=3時(shí),x.childNodes.length=2,退出循環(huán)了,也出現(xiàn)漏刪了,所以會(huì)出現(xiàn)一次刪不干凈,需要多次刪除的狀況了



1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

心為形役 提問者

謝謝你的耐心解答
2016-05-16 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

i=contnet.childNodes.length-1和i=0;i<content.childNodes.length的區(qū)別

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)