想依次輸出被刪除內(nèi)容,結(jié)果是undefined,錯(cuò)在哪?
<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");
? // 在此完成該函數(shù)
? for(var i=0;i<content.childNodes.length;i++){
? ? ? var x=content.removeChild(content.childNodes[i]);
? ? ? document.write("被移除的內(nèi)容是:"+x.innerHTML+"<br>");? ? ? //這一句的問(wèn)題在哪里????
? }
}
</script>
運(yùn)行結(jié)果:
被移除的內(nèi)容是:undefined
被移除的內(nèi)容是:undefined
被移除的內(nèi)容是:undefined
被移除的內(nèi)容是:undefined
被移除的內(nèi)容是:undefined
被移除的內(nèi)容是:undefined
2019-01-03
for(var i=0;i<content.childNodes.length;i++) 你應(yīng)該從后面的元素的刪除起, 而不是 前面.?
2018-10-14
我也被這個(gè)難到了
2018-09-17
自答。
因?yàn)樵贑hrome,F(xiàn)irefox等瀏覽器看來(lái),HTML代碼寫(xiě)在一行和分多行是有區(qū)別的,上述HTML部分實(shí)際上存在空節(jié)點(diǎn),如圖片:
空節(jié)點(diǎn)是不具有innerHTML屬性,其次在循環(huán)的同時(shí),數(shù)組的長(zhǎng)度在改變,這就難以得到正確結(jié)果。
正確做法之一是,將非空節(jié)點(diǎn)存在新數(shù)組中,然后處理新數(shù)組元素: