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

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

為什么我這段代碼不能一次吧節點內容清理完,需要點幾次按鈕才行

<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");

? // 在此完成該函數

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

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

? ? ? mynode=null;

? }

}

</script>

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


正在回答

2 回答

因為當你執行了removeChild方法后,content.childNodes.length的值,以及content.childNodes[i]都發生了變化。比如題中有5個子節點,當刪除第1個子節點(html),即content.childNode[0]后,原先的第2個子節點(php)已經變成第1個子節點了,conten.childNodes.length也從5變成了4 。所以想一次刪除的方法應該是:

function clearText() {

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

? // 在此完成該函數

? var content_child=content.childNodes;

? var child_length=content_child.length;

? for(var i=0;i<child_length;i++){

? ? ? content.removeChild(content_child[0]);

? }

}


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

善良阿呆 提問者

懂了,謝謝您的幫助
2016-08-04 回復 有任何疑惑可以回復我~

刪除代碼一定要注意,刪除一個后,一般節點就少了一個,所以刪除一般是從大到小刪除,即:for(var i=content.childNodes.length-1;i>=0;i--){...}

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

善良阿呆 提問者

懂了,謝謝您的回答
2016-08-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么我這段代碼不能一次吧節點內容清理完,需要點幾次按鈕才行

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

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

幫助反饋 APP下載

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

公眾號

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