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

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

為什么結果不對

好奇怪,我這樣寫?var i=0;i<content.childNodes.length-1;i++,運行結果是,第一次點擊按鈕沒反應,第二次點擊,后三個刪除,第三次點擊,倒數第二個刪除,第四次點擊,才全部刪完,為什么會這樣

正在回答

1 回答

建議彈出結果一下你就知道為什么是這樣的了

?for(var i=0;i<content.childNodes.length-1;i++){

????????alert('i:'+i+';數組個數: '+content.childNodes.length+';'+content.childNodes[i])//添加測試原因

? ? ? ?var x=content.removeChild(content.childNodes[i]);

? ? ? x=null;

? }

我一開始想都沒想就這樣寫了,然后遇到了你的這種結果,

我來解釋一下發生這樣的原因,

首先,第一次點擊沒反應的原因是刪除的是空白元素,

因為除了ie,其他瀏覽器換行都算一個空白節點,

第一次循環時,刪除的是下標為0的節點,也就是第一個空白節點,然后i加1變成了2,

第二次循環時,刪除的是下標為1的節點,其實刪除的還是空白節點,因為空白節點之前的h1標簽的下標已經從1變成了0,因為第一次循環刪除了第一個節點,剩下的節點也就往前移了一位,

然后之后刪除的都是空白節點,原理一樣

直到i的值達到一個數值,也就是等于length的程度,停止循環,然后由于每次循環length的長度都減1了,所以只循環了一半,恰好吧空白節點刪除了,但是刪除空白節點是看不到效果的,所以第一次點擊沒反應,

之后的原因的點擊都一樣,只不過沒有空白節點了,所以看到的就是你那種效果。。。。。

建議:每次出現問題的時候都試著彈出結果,依次往前找原因。。。。


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么結果不對

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

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

幫助反饋 APP下載

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

公眾號

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