求解釋為啥刪不掉所有節點?
<!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.length;i++){
? ? ? var x=content.removeChild(content.childNodes[i])
? }
??
}
</script>
<button onclick="clearText()">清除節點內容</button>
</body>
</html>
2018-08-03
i的條件寫錯了,應該是content的所有子節點長度。另外還要注意非IE瀏覽器會把空白當成節點,還有,每次刪除節點,整個數組會發生變化,原來索引1的值會變成索引0,而i經過循環變成了1,索引0就刪不掉了,這個代碼會造成隔行刪的情況,需要想想如何修改。
2018-07-31
第一個回答的為什么要嘲諷別人啊。
而且content.childNodes[i]這個沒有問題吧,遍歷的是content下的子節點啊。
有問題的是i的取值,應該是i<content.childNodes.length。取對了之后是可以刪除的,但是不能一次刪去,可以想想為什么再去嘗試,加油~
2018-07-26
應該是由于刪除了子代節點之后,集合變了的關系,這樣寫可以一次刪除
<!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");
? // 在此完成該函數
? var children=content.childNodes;
? var length=children.length;
? while(children!=null){
? ? ? var x=content.removeChild(children[0]);
? ? ? x=null;
? }
??
?/*?
?這個不能一次完成刪除,應該是因為children被刪除
?之后出現改變的原因
?for(var i=0;i<length;i++){
? ? ?var x= content.removeChild(children[i]);
? ? ?x=null;
? }*/
??
}
</script>
<button onclick="clearText()">清除節點內容</button>
</body>
</html>
2018-07-14
id獲得的是一個值? 不是一個數組? 你對一個數組進行遍歷? ?牛逼
2018-07-14
for(var i=0;i<content.childNodes.length;i++){? };? for循環里面遍歷的數組沒取對
2018-07-14
var x=content.removeChild(content.childNodes[i])? 是不是少了一個“;”
2018-07-13
仔細把理論看一下再寫代碼,真的。。這樣對你有好處