jsteven
2016-02-19 19:12
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<div id="content">
<h1>ht5ml</h1>
<h1>p5hp</h1>
<h1>ja5vascript</h1>
<h1>jqu5ery</h1>
<h1>jav5a</h1>
</div>
<script type="text/javascript">
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
var head=document.getElementsByTagName("h1");
alert(head.length);
for(var i=0;i<5;i++)
{
alert(i);
content.removeChild(head[i]);
}
}
</script>
<button onclick="clearText()">清除节点内容</button>
</body>
</html>
问题在于你每remove一次,head里的元素就被去掉一个,然后后面的元素就相当于前移了一位
例如,你删掉第一个元素ht5ml之后,第二个元素p5hp就变成了第一个元素,但是你接下来是删除第二个元素,现在第二个元素已经是ja5vascript了,因此p5hp就没有被删掉,往后以此类推
要解决这个问题,在remove之后加一句 i--
JavaScript进阶篇
468190 学习 · 21891 问题
相似问题
回答 1
回答 3
回答 2
回答 1
回答 2