<!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 cn=content.childNodes[i];
content.removeChild(cn);
}
}
</script>
<button onClick="clearText()">清除节点内容</button>
</body>
</html><!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=content.childNodes.length-1;i>=0;i--){
var childNode = content.childNodes[i];
content.removeChild(childNode);
}
}
</script>
<button onClick="clearText()">清除节点内容</button>
</body>
</html>为什么第二个能全部清除 而第一个不能啊
使用for循环清除节点例如:如下代码会导致每次点击都只能清除部分节点。这是因为每次清除节点时childNodes的长度(即tt.length)都缩短1,而每次I增大1,这样会导致i的值还没有达到最初的tt.length时循环会比提前结束;
var tt=content.childNodes;
for(i=0;i<tt.length;i++);{
content.removeChild(tt[1]);
}
简述:正序删除与倒序删除的差别
来自:MotoDoctor的解释。仅供参考