未來Miral
2016-11-22 14:11
<!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>
至于不能一次性清除所有的子节点的节点值,可以把循环条件变为for(i=content.childNodes.length-1;i>=0;i--)
这样就可以一次性清除所有显示内容
function clearText() { var content=document.getElementById("content"); // 在此完成该函数 var content1=content.childNodes; for(var i=0;i<content1.length;i++) { /* 跳过空格,因为节点和空格是交替出现的,而且子节点数组长度也会因删除而变化,所以跳过第一个空格后,会直 接一个节点一个节点的删除,直到将节点全部删除,实现点击一次删除所有节点的目的。 这种方法有点取巧的方式,标准做法是倒着删。 */ if(content1[i].nodeType!=1) { continue; } content.removeChild(content1[i]); } }
你好 ,你的content是div而不是它的孩子节点,应该把循环变成i<content.childNodes.length; 这样就对了
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题