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

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

JS進階9-14問題

<body>
<div id="content">
? <h1>html</h1>
? <h1>php</h1>
? <h1>javascript</h1>
? <h1>jquery</h1>
? <h1>java</h1>
</div>

<script type="text/javascript">
function clearText() {
? var content=document.getElementById("content");
? // 在此完成該函數
? var nodes=content.childNodes;
? for(var i=0;i<nodes.length;i++){
????? if(nodes[i].nodeType==1)
???????? content.removeChild(nodes[i]);
? }
}
</script>

<button onclick="clearText()">清除節點內容</button>
</body>

為什么不加if判斷節點的類型時,用for循環移除全部節點卻不是一次性移除,要點擊button數次才能移除全部子節點。

正在回答

1 回答

你所用的for循環是從小索引開始刪除,但在每一次刪除后,后面的節點會向前移動,因此每個節點的索引也會遞減,而循環變量i仍在繼續增加,所以下一次刪除的節點就與預想的節點的索引不一致,此外,每次刪除后,nodes.length會減一,導致一個for循環結束后,仍然剩下一部分節點未刪除,所以需要多次調用函數進行刪除剩下的節點

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

技術的人生 提問者

非常感謝!
2017-07-25 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

JS進階9-14問題

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

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

幫助反饋 APP下載

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

公眾號

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