為什么這樣寫不能一次性刪除完整,而且點(diǎn)擊一次沒反應(yīng),點(diǎn)擊第二次刪除html、javascript、jQuery,點(diǎn)擊第三次刪除java,點(diǎn)擊第四次刪除php???怪事?。?/h1>
這是我的代碼:
這是我的代碼:
2016-12-07
舉報(bào)
2016-12-09
簡(jiǎn)單,因?yàn)閯h除了子節(jié)點(diǎn)后,后面的子節(jié)點(diǎn)會(huì)自動(dòng)替補(bǔ)上空缺,刪了第一個(gè),原來(lái)的第二個(gè)就變了第一個(gè)。所以應(yīng)該每次刪除的都是第一個(gè),不應(yīng)該刪除第i個(gè),因?yàn)閕在變化,而你始終要從第一個(gè)開始刪除。
另外,初始條件也不能是i=0,i++。假設(shè)你刪了第一個(gè),i就變成了1,那么下一次你刪除的就是剩下的所有子節(jié)點(diǎn)中的第二個(gè),第一個(gè)被你漏掉了啊。在下一次i=2,你刪除的就是子節(jié)點(diǎn)集合里的第三個(gè)了。所以要這么改:
2016-12-07
1.因?yàn)榭崭矜I也算一個(gè)結(jié)點(diǎn),第一次點(diǎn)擊是刪除的是空格鍵的空結(jié)點(diǎn),這可以在每個(gè)標(biāo)簽加上個(gè)數(shù)字去試試看。
2.要注意在刪除節(jié)點(diǎn)同時(shí),content孩子節(jié)點(diǎn)的個(gè)數(shù)和位置也在變化,
不要把i<content.childNodes.length做為判斷條件,舉例說(shuō)明,IE下執(zhí)行,節(jié)點(diǎn)個(gè)數(shù)5個(gè),當(dāng)我點(diǎn)一次刪除按鈕。
注意:5個(gè)節(jié)點(diǎn)分別對(duì)應(yīng)下標(biāo)是從0開始:??? 1[0]???????? 2[0]???????? 3[0]?????????? 4[0]????????? 5[0]?
i=0?????content.childNodes.length=5????? 0<5? 刪除第一個(gè)節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=1?????content.childNodes.length=4????? 1<4?? 刪除第二個(gè)節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=2?????content.childNodes.length=3?????? 2<3? ?刪除第三個(gè)節(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