課程
/前端開發
/JavaScript
/JavaScript進階篇
這是我的代碼:
2016-12-07
源自:JavaScript進階篇 9-14
正在回答
簡單,因為刪除了子節點后,后面的子節點會自動替補上空缺,刪了第一個,原來的第二個就變了第一個。所以應該每次刪除的都是第一個,不應該刪除第i個,因為i在變化,而你始終要從第一個開始刪除。
另外,初始條件也不能是i=0,i++。假設你刪了第一個,i就變成了1,那么下一次你刪除的就是剩下的所有子節點中的第二個,第一個被你漏掉了啊。在下一次i=2,你刪除的就是子節點集合里的第三個了。所以要這么改:
<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
進擊君 回復 慕勒9330939
qq_火茲_03896205
進擊君 回復 qq_火茲_03896205
利木 回復 qq_火茲_03896205
1.因為空格鍵也算一個結點,第一次點擊是刪除的是空格鍵的空結點,這可以在每個標簽加上個數字去試試看。
2.要注意在刪除節點同時,content孩子節點的個數和位置也在變化,
不要把i<content.childNodes.length做為判斷條件,舉例說明,IE下執行,節點個數5個,當我點一次刪除按鈕。
注意:5個節點分別對應下標是從0開始:??? 1[0]???????? 2[0]???????? 3[0]?????????? 4[0]????????? 5[0]?
i=0?????content.childNodes.length=5????? 0<5? 刪除第一個節點后,繼續循環
i=1?????content.childNodes.length=4????? 1<4?? 刪除第二個節點后,繼續循環
i=2?????content.childNodes.length=3?????? 2<3? ?刪除第三個節點后,繼續循環
i=3???content.childNodes.length=2????????? 3<2? 不成立,所以不繼續。
這也就是為什么一次刪除不了所以節點,且第二次點擊刪除html、javascript、jQuery,點擊第三次刪除java,點擊第四次刪除php
慕粉4340077 提問者
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答為什么第一次點擊會刪除3個節點
3 回答想點擊一次刪除一個子節點,為什么必須點擊兩次才能刪除一個???
2 回答點擊第一下沒有反應,然后再點擊一下刪除了3個,然后再點擊依次刪除一個
2 回答為什么我這個點擊第一次沒有反應,第二次一次性清除三個?
48 回答怎么點擊第一下沒有反應,然后再點擊一下刪除了3個,然后再點擊依次刪除一個
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-12-09
簡單,因為刪除了子節點后,后面的子節點會自動替補上空缺,刪了第一個,原來的第二個就變了第一個。所以應該每次刪除的都是第一個,不應該刪除第i個,因為i在變化,而你始終要從第一個開始刪除。
另外,初始條件也不能是i=0,i++。假設你刪了第一個,i就變成了1,那么下一次你刪除的就是剩下的所有子節點中的第二個,第一個被你漏掉了啊。在下一次i=2,你刪除的就是子節點集合里的第三個了。所以要這么改:
2016-12-07
1.因為空格鍵也算一個結點,第一次點擊是刪除的是空格鍵的空結點,這可以在每個標簽加上個數字去試試看。
2.要注意在刪除節點同時,content孩子節點的個數和位置也在變化,
不要把i<content.childNodes.length做為判斷條件,舉例說明,IE下執行,節點個數5個,當我點一次刪除按鈕。
注意:5個節點分別對應下標是從0開始:??? 1[0]???????? 2[0]???????? 3[0]?????????? 4[0]????????? 5[0]?
i=0?????content.childNodes.length=5????? 0<5? 刪除第一個節點后,繼續循環
i=1?????content.childNodes.length=4????? 1<4?? 刪除第二個節點后,繼續循環
i=2?????content.childNodes.length=3?????? 2<3? ?刪除第三個節點后,繼續循環
i=3???content.childNodes.length=2????????? 3<2? 不成立,所以不繼續。
這也就是為什么一次刪除不了所以節點,且第二次點擊刪除html、javascript、jQuery,點擊第三次刪除java,點擊第四次刪除php