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

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

想依次輸出被刪除內容,結果是undefined,錯在哪?

<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 x=content.removeChild(content.childNodes[i]);


? ? ? document.write("被移除的內容是:"+x.innerHTML+"<br>");? ? ? //這一句的問題在哪里????


? }


}


</script>


運行結果:


被移除的內容是:undefined

被移除的內容是:undefined

被移除的內容是:undefined

被移除的內容是:undefined

被移除的內容是:undefined

被移除的內容是:undefined


正在回答

3 回答

for(var i=0;i<content.childNodes.length;i++) 你應該從后面的元素的刪除起, 而不是 前面.?

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

我也被這個難到了

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

自答。

因為在Chrome,Firefox等瀏覽器看來,HTML代碼寫在一行和分多行是有區別的,上述HTML部分實際上存在空節點,如圖片:

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

空節點是不具有innerHTML屬性,其次在循環的同時,數組的長度在改變,這就難以得到正確結果。

正確做法之一是,將非空節點存在新數組中,然后處理新數組元素:

<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?childArr?=?content.childNodes;

//篩選出元素節點(新數組里不再有空節點)
var?eleNodeArr?=?new?Array();
for(var?i=0;i<childArr.length;i++){
????if(childArr[i].nodeType==1){
????????var?x?=?eleNodeArr.push(childArr[i]);//將元素節點存入新數組
????}
}

//???依次刪除元素節點
????for?(var?i=0;eleNodeArr.length;?i++)?{
????????????var?y?=?content.removeChild(eleNodeArr[i]);
????????????document.write("被刪除的內容為:"+y.innerHTML+"<br>");//注意,這里不能用eleNodeArr[i]代替y
????????}
??}
??</script>
??<button?onclick="clearText()">清除節點內容</button>


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

專注程序不可自拔

你好,看了你的代碼,很好奇var x = eleNodeArr.push(childArr[i]);這一句將篩選完的數組存到x中,為什么下面不使用x呢
2018-10-24 回復 有任何疑惑可以回復我~
#2

PaulPierce 回復 專注程序不可自拔

push 方法 返回的是 數組 長度. 所以x是長度. 沒啥用.
2019-01-03 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

想依次輸出被刪除內容,結果是undefined,錯在哪?

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

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

幫助反饋 APP下載

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

公眾號

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