課程
/前端開發(fā)
/JavaScript
/JavaScript進(jìn)階篇
這是我的代碼:
2016-12-07
源自:JavaScript進(jìn)階篇 9-14
正在回答
簡單,因?yàn)閯h除了子節(jié)點(diǎn)后,后面的子節(jié)點(diǎn)會自動替補(bǔ)上空缺,刪了第一個,原來的第二個就變了第一個。所以應(yīng)該每次刪除的都是第一個,不應(yīng)該刪除第i個,因?yàn)閕在變化,而你始終要從第一個開始刪除。
另外,初始條件也不能是i=0,i++。假設(shè)你刪了第一個,i就變成了1,那么下一次你刪除的就是剩下的所有子節(jié)點(diǎn)中的第二個,第一個被你漏掉了啊。在下一次i=2,你刪除的就是子節(jié)點(diǎn)集合里的第三個了。所以要這么改:
<script?type="text/javascript"> function?clearText()?{ ??var?content=document.getElementById("content"); ????for(var?i=content.childNodes.length;i>0;i--){?//一共有幾個就要刪幾次,刪到0為止 ??????var??x=content.removeChild(content.childNodes[0]);//每次都刪第一個 ??????x=null; ??}?? } </script>
慕勒9330939
進(jìn)擊君 回復(fù) 慕勒9330939
qq_火茲_03896205
進(jìn)擊君 回復(fù) qq_火茲_03896205
利木 回復(fù) qq_火茲_03896205
1.因?yàn)榭崭矜I也算一個結(jié)點(diǎn),第一次點(diǎn)擊是刪除的是空格鍵的空結(jié)點(diǎn),這可以在每個標(biāo)簽加上個數(shù)字去試試看。
2.要注意在刪除節(jié)點(diǎn)同時,content孩子節(jié)點(diǎn)的個數(shù)和位置也在變化,
不要把i<content.childNodes.length做為判斷條件,舉例說明,IE下執(zhí)行,節(jié)點(diǎn)個數(shù)5個,當(dāng)我點(diǎn)一次刪除按鈕。
注意:5個節(jié)點(diǎn)分別對應(yīng)下標(biāo)是從0開始:??? 1[0]???????? 2[0]???????? 3[0]?????????? 4[0]????????? 5[0]?
i=0?????content.childNodes.length=5????? 0<5? 刪除第一個節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=1?????content.childNodes.length=4????? 1<4?? 刪除第二個節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=2?????content.childNodes.length=3?????? 2<3? ?刪除第三個節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=3???content.childNodes.length=2????????? 3<2? 不成立,所以不繼續(xù)。
這也就是為什么一次刪除不了所以節(jié)點(diǎn),且第二次點(diǎn)擊刪除html、javascript、jQuery,點(diǎn)擊第三次刪除java,點(diǎn)擊第四次刪除php
慕粉4340077 提問者
舉報
本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁動態(tài)交互世界
1 回答為什么第一次點(diǎn)擊會刪除3個節(jié)點(diǎn)
3 回答想點(diǎn)擊一次刪除一個子節(jié)點(diǎn),為什么必須點(diǎn)擊兩次才能刪除一個???
2 回答點(diǎn)擊第一下沒有反應(yīng),然后再點(diǎn)擊一下刪除了3個,然后再點(diǎn)擊依次刪除一個
48 回答怎么點(diǎn)擊第一下沒有反應(yīng),然后再點(diǎn)擊一下刪除了3個,然后再點(diǎn)擊依次刪除一個
2 回答為什么我這個點(diǎn)擊第一次沒有反應(yīng),第二次一次性清除三個?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-12-09
簡單,因?yàn)閯h除了子節(jié)點(diǎn)后,后面的子節(jié)點(diǎn)會自動替補(bǔ)上空缺,刪了第一個,原來的第二個就變了第一個。所以應(yīng)該每次刪除的都是第一個,不應(yīng)該刪除第i個,因?yàn)閕在變化,而你始終要從第一個開始刪除。
另外,初始條件也不能是i=0,i++。假設(shè)你刪了第一個,i就變成了1,那么下一次你刪除的就是剩下的所有子節(jié)點(diǎn)中的第二個,第一個被你漏掉了啊。在下一次i=2,你刪除的就是子節(jié)點(diǎn)集合里的第三個了。所以要這么改:
2016-12-07
1.因?yàn)榭崭矜I也算一個結(jié)點(diǎn),第一次點(diǎn)擊是刪除的是空格鍵的空結(jié)點(diǎn),這可以在每個標(biāo)簽加上個數(shù)字去試試看。
2.要注意在刪除節(jié)點(diǎn)同時,content孩子節(jié)點(diǎn)的個數(shù)和位置也在變化,
不要把i<content.childNodes.length做為判斷條件,舉例說明,IE下執(zhí)行,節(jié)點(diǎn)個數(shù)5個,當(dāng)我點(diǎn)一次刪除按鈕。
注意:5個節(jié)點(diǎn)分別對應(yīng)下標(biāo)是從0開始:??? 1[0]???????? 2[0]???????? 3[0]?????????? 4[0]????????? 5[0]?
i=0?????content.childNodes.length=5????? 0<5? 刪除第一個節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=1?????content.childNodes.length=4????? 1<4?? 刪除第二個節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=2?????content.childNodes.length=3?????? 2<3? ?刪除第三個節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=3???content.childNodes.length=2????????? 3<2? 不成立,所以不繼續(xù)。
這也就是為什么一次刪除不了所以節(jié)點(diǎn),且第二次點(diǎn)擊刪除html、javascript、jQuery,點(diǎn)擊第三次刪除java,點(diǎn)擊第四次刪除php