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

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

這兩段代碼意思不是一樣的嗎?

https://img1.sycdn.imooc.com//5af4f61400013fd609240896.jpg

我有點犯暈,會的教一下。這兩段代碼的區別。謝謝了。?

正在回答

6 回答

不一樣,如果在外面申明node1 = content.childNodes.length 后再執行循環 for (i = 0; i < node1; i++)的話,每次執行for循環的時候node1的值就不會變了;

如果使用 for (i = 0; i < content.childNodes.length; i++) 的話每次執行 for 循環的時候 content.childNodes.length的值都在變小,因為每次執行一次 for循環都移除了一個length 長度,就是截圖中央那段話表達的意思。

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

為什么同學代碼中最高票回答的第一個代碼能正常運行,按理說應該無法一次刪除啊?

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

? ? ? if(content.childNodes[i].nodeType!=1){ ??

? ? ? ? ?continue; ?

? ? ? }else{

? ? ? ? ?content.removeChild(content.childNodes[i]); ? ?

? ? ? }

? ? ? ? ?

? ? ? }


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

果然有個地方不一樣哎,多謝

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

求助呀

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

hhahaha 提問者

大概意思就是length的值沒有跟著這個函數變化,所以效果是一樣的,變了才是錯誤的。你這個只是把原來的代碼改了一個形式而已
2018-05-22 回復 有任何疑惑可以回復我~

<script type="text/javascript">

function clearText() {

? var content=document.getElementById("content");

? // 在此完成該函數

// var all = content.childNodes.length;

// for(i=0;i<all;i++)

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

//? ? x=null;

// }

??

? ?var all = content.childNodes;

? for(i=0;i<all.length;i++)

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

? ? ?x=null;

? }

}

</script>

為什么我用這兩種方法寫出來的效果是一樣的?都不太正常啊

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

hhahaha 提問者

你這兩段代碼的意義好像是一樣的,我不知道怎么解釋給你聽,我也是小白,你對比一下我發問題那個圖,跟你的不一樣。加油哦
2018-05-22 回復 有任何疑惑可以回復我~

非常感謝

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

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468835    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

這兩段代碼意思不是一樣的嗎?

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

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

幫助反饋 APP下載

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

公眾號

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