怎么輸出內(nèi)容是[object Text]?
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標(biāo)題文檔</title>
</head>
<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");
? // 在此完成該函數(shù)
? for(var i=0;i<content.childNodes.length;++i)
? {
? ? ? var a=content.removeChild(content.childNodes[i]);
? ? ? document.write(a+"<br>");
? };
??
}
</script>
<button onclick="clearText()">清除節(jié)點(diǎn)內(nèi)容</button>
</body>
</html>
2016-08-20
首先content第一個子節(jié)點(diǎn)是文本節(jié)點(diǎn)所以顯示[object text],然后document.write()就把其他東西清掉了,得不到第二個節(jié)點(diǎn),然后就沒然后了。
這個道理其實(shí)很簡單,假設(shè)我有紅橙黃綠藍(lán)靛紫七種顏色貼紙,我把它貼在黑板上,我把紅色的拿下來,然后想在黑板上寫上第一個是紅色,發(fā)現(xiàn)黑板上有貼紙我不能寫,我就把貼紙都拿下來,然后寫上紅色,當(dāng)我想拿第二個的時候,我發(fā)現(xiàn)黑板上沒有第二個了,沒有貼紙了,所以黑板上只剩下紅色兩個字。
不要笑我傻,這個過程就是瀏覽器操作的過程,加載完頁面后,在調(diào)用document.write,會把頁面刷新一遍,就什么都沒了。(頁面加載時調(diào)用(沒有事件觸發(fā))不會),可以用alert試試。還有這個循環(huán)有很大缺陷,建議多參考這題的別人的問答