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

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

雖然寫出來了 但是邏輯有點混亂

function clearText() {

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

? // 在此完成該函數

? for(i=content.childNodes.length;i>0;i++){

? ? ? content.removeChild(content.childNodes[0])?

}

}

這個代碼雖然可以用 但是我對里面的順序有點不理解 我自己理解是

第一次循環之后 i的值雖然加一了但是在第二圈循環開始的時候i重新賦值了所以i++這個條件并沒有什么用

for(i=content.childNodes.length;i>0;)

然后一開始我是這么寫的 測試的時候失敗了后來重新試試又成功了 不知道這么寫有問題嗎?


正在回答

1 回答

首先來了解一下 for 循環在 js 中的運行機制

for(語句1;?語句2;?語句3){//代碼塊}

語句 1?在循環(代碼塊)開始前執行

語句 2?定義運行循環(代碼塊)的條件

語句 3?在循環(代碼塊)已被執行之后執行

所以 循環階段 語句1是不執行的 ;然后循環開始,先判斷語句2 成功則執行代碼塊 失敗則跳出循環;如果運行代碼塊,每一次循環結束后執行語句3

然后我們來看代碼

function?clearText()?{
??var?content=document.getElementById("content");
??//?在此完成該函數
??for(var?i=content.childNodes.length;i>0;i++){
??????content.removeChild(content.childNodes[0])?
??}
}

這段代碼原意應該是刪除 content 的所有子元素,按照邏輯 for循環中的語句3應該為 i--

最后如果 不想寫語句1 和語句3的話 可以改寫成

for(;content.childNodes.length>0;){
??????content.removeChild(content.childNodes[0])?
??}

哎 寫了這么多 最后發現 代碼中 循環里有個分號用的是 中文的分號;

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

mosaice 提問者

辛苦了 - -
2015-05-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

雖然寫出來了 但是邏輯有點混亂

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

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

幫助反饋 APP下載

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

公眾號

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