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