沈凌松233
2017-02-23 20:24
<!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 k=0;
var content=document.getElementById("content");
var a=content.childNodes;
for(var i=0;i<a.length;i++){
content.removeChild(a[i]);
//k++;
}
// document.write(k);
}
</script>
<button onclick="clearText()">清除节点内容</button>
</body>
</html>
他这个代码的意思就是除了上面这三种情况你无论怎么操作他都会输出要努力的这句话,你可以有ELSE对0到60的使用这句话,其他操作无显示。
他子节点长度是随着FOR循环不断变化的 可以在for循环前把长度存入一个变量中
<!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"); var x = content.childNodes.length var num =0 for (i=0;i<x;i++){ content.removeChild(content.firstChild); num = num+1 console.log(num) } } </script> <button onclick="clearText()">清除节点内容</button> </body> </html>
这样就可以实现一次全清
当i=3的时候 子节点的长度就只有2,循环就不会继续执行了
for(var i=0; i<content.childNodes.length;){ content.removeChild(content.childNodes[i]); }
如果非要用for的话,这样就可以了。不需要对i加一,其实这个用while更简单,直接判断子节点个数有没有到0就可以。
看了下置顶说不能用length作为判断条件 所以做了修改
function clearText() {
//var k=0;
var content=document.getElementById("content");
var a=content.childNodes;
var k=a.length;
for(var i=0;i<k;i++){
content.removeChild(a[i]);
a[i]=null;
//k++;
}
// document.write(k);
}
然而还是不行 求大神解惑
JavaScript进阶篇
467399 学习 · 21877 问题
相似问题