為什么這樣寫結果會出錯??
<!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++)
? {
????? if(content.removeChild(content.childNodes[i])!=null)
????? {
????????? document.write(content.childNodes[i].innerHTML+"節點清除成功<br>");
??????? ? content.childNodes[i].innerHTML = null;
????? }
?? else
????? {
????????? document.write(content.childNodes[i].innerHTML+"節點清除失敗"+"<br>");
????? }
? }
}
</script>
<button onclick="clearText()">清除節點內容</button>
</body>
</html>
2019-12-25
for(var?i=0;i<content.childNodes.length;i++){let?willRemoveContent?=?content.childNodes[i].innerHTML;if(content.removeChild(content.childNodes[i])!=null){document.write(willRemoveContent?+"節點清除成功<br>");//?content.childNodes[i].innerHTML?=?null;}else{document.write(willRemoveContent+"節點清除失敗"+"<br>");的時候已經removeChild了 child,然后下面又去獲取 child 的 innerHTML?
2019-12-25
?//?這里已經將childNodes[i]移除了 ?if(content.removeChild(content.childNodes[i])!=null) ??????{ ??????????//?這里再去讀取content.childNodes[i]?不合理 ??????????document.write(content.childNodes[i].innerHTML+"節點清除成功<br>"); ??????????content.childNodes[i].innerHTML?=?null; ??????} ???else ??????{ ??????????document.write(content.childNodes[i].innerHTML+"節點清除失敗"+"<br>"); ??????}試試這個:
let?willRemoveContent?=?content.childNodes[i].innerHTML; if(content.removeChild(content.childNodes[i])!=null) { ????document.write(willRemoveContent?+"節點清除成功<br>"); } else { ????document.write(willRemoveContent+"節點清除失敗"+"<br>" );吐槽一下慕課做的排版真是麻煩