關于removeChild的問題!
<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 conCh=document.getElementsByTagName("h1");
for(var i=0;i<conCh.length;i++)
{
conCh.removeChild(conCh[i]);
}
}
</script>
<input type="button" value="清楚內容" onclick="clearText()" />
</body>
麻煩大家給解答下,為什么我這個代碼不好使,原因是什么,新手自學麻煩說的詳細點不勝感謝!
2017-06-01
來看這個方法的公式element.removeChild(child);
? ? ? 從element(元素對象)刪除里面的child(節點對象);
? ? ?這是你的:conCh.removeChild(conCh[i])
來看看你的conCh這是H1的元素集合,但是我們需要的是他的父級元素(父級元素里面包含有H1的元素集合,),也就是你這個要改為
conCh.parentNode也就是content;(你這個conCH就沒必要了)
然后括號里面需要的是一個節點對象,但是你里面卻是一個元素對象,所以需要把里面的轉換為節點對象:content.childeNode[i](可以這么理解:父級元素里面的 第[i]個 ?子節點對象)
我是這么理解的,
2017-06-17
conCh[i]是指的h1的集合中第i個元素
conCh指的是h1組成的數組不是唯一且確定的!
conCh.removeChild(conCh[i]);一個數組中刪除它的子節點肯定沒法實現
content.removeChild(conCh[i]);這句代碼可以實現,因為content是唯一的父元素div,可以刪除它的某個h1節點。
2017-06-01
明白了 謝謝哈!