亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么這樣只輸出一部分結果

為什么輸出結果是這樣的

刪除掉的節點是:html
刪除掉的節點是:javascript
刪除掉的節點是:java

而且不輸出“所有節點已刪除”


正在回答

1 回答

for循環第一次,i=0,刪除html節點;

第二次,i=1,因為第一次循環刪除了一個節點,html語句中的結構變為:<div id="content"><h1>php</h1><h1>javascript</h1><h1>jquery</h1><h1>java</h1></div>

所以刪除的content.childNodes[1]就是javascript節點,而不是php節點;

第三次,i=2,前兩次循環刪除了兩個節點了,所以這里的content.childNodes[2]指的是java;

第四次,i=3時,html語句為:<div id="content"><h1>php</h1><h1>jquery</h1></div>,只有兩個節點,查找不到第四個節點,所以出錯了,后面的“所有節點已刪除”也輸出不了

大概是這樣。

錯誤的點在于 1.長度信息沒更新,即c值;2.content.childNodes的長度會變,所以執行循環后,i++會引發漏刪節點

大概就是這樣。

有誤可更正。

1 回復 有任何疑惑可以回復我~
#1

慕移動5947621 提問者

非常感謝!
2018-03-26 回復 有任何疑惑可以回復我~
#2

慕移動5947621 提問者

謝謝,邏輯很清楚,所以如果我一定要用正序的話,那就是要讓i始終為0,那樣永遠都是刪除第一個
2018-03-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么這樣只輸出一部分結果

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號