大年糕
2017-06-01 10:49
<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>
麻烦大家给解答下,为什么我这个代码不好使,原因是什么,新手自学麻烦说的详细点不胜感谢!
来看这个方法的公式element.removeChild(child);
从element(元素对象)删除里面的child(节点对象);
这是你的:conCh.removeChild(conCh[i])
来看看你的conCh这是H1的元素集合,但是我们需要的是他的父级元素(父级元素里面包含有H1的元素集合,),也就是你这个要改为
conCh.parentNode也就是content;(你这个conCH就没必要了)
然后括号里面需要的是一个节点对象,但是你里面却是一个元素对象,所以需要把里面的转换为节点对象:content.childeNode[i](可以这么理解:父级元素里面的 第[i]个 子节点对象)
我是这么理解的,
conCh[i]是指的h1的集合中第i个元素
conCh指的是h1组成的数组不是唯一且确定的!
conCh.removeChild(conCh[i]);一个数组中删除它的子节点肯定没法实现
content.removeChild(conCh[i]);这句代码可以实现,因为content是唯一的父元素div,可以删除它的某个h1节点。
明白了 谢谢哈!
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题