AMingxy
2019-07-24 21: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"); // 在此完成该函数 var x=content.childNodes; for (var i=0;i<x.length;i++) { content.removeChild(x[i]); } } </script> <button onclick="clearText()">清除节点内容</button> </body> </html>
第一个问题:content.childNodes; 这个东西拿到的是所有节点,包括换行符,空格这些东西,建议换成children。当然这个这样写也没问题。
第二个问题,你在循环删除节点的时候。每删除一次,节点长度是发生变化的,比如:你删除第一个html的时候,这时候你数组长度变为了4了(这里节点数量如果你第一个问题改为children的节点数量是5,不该的话是11),你第二次循环的时候i=2 节点的第二位 x【 2 】 是javascript。,就是删除的是javascript,这样的话就把php漏了
下边是正确代码,忘采纳
function clearText() { var content = document.getElementById("content");// 在此完成该函数 var x = content.childNodes; var xlen = x.length; for (var i = 0; i < xlen; i++) { content.removeChild(x[0]); } }
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题