<!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 x=content.removeChild(content.childNodes[i]);
document.write("删除的节点为:"+x.innerHTML+"<br>");
}
// 在此完成该函数
}
</script>
<button onclick="clearText()">清除节点内容</button>
</body>
</html>
删除的节点为:undefined
删除的节点为:undefined
删除的节点为:undefined
删除的节点为:undefined
删除的节点为:undefined
删除的节点为:undefined
function clearText() {
var content=document.getElementById("content");
for(var i=1;i<content.childNodes.length;++i){
var x = content.removeChild(content.childNodes[i]);
document.write("删除的节点为:"+x.innerHTML+"<br>");
}
}
改成这样就可以了。为什么下标是1,可能是因为浏览器把一些看不到的元素也当成了子节点;可以alert(content.childNodes.length),看一下长度,会发现比你想像的多了很多
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
var childs=content.childNodes;
for(var i=0;i<=childs.length;i++){
if(childs[i].nodeType!=1){continue;}else{
content.removeChild(childs[i]);
}
}
//要考虑到兼容性,斜体