为了账号安全,请及时绑定邮箱和手机立即绑定

请教大神解答?

<!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++){
      if(content.childNodes[i].nodeType!=1){  
         continue; 
      }else{
         content.removeChild(content.childNodes[i]);   
      }
        
      }

请问为什么要content.childNodes[i].nodeType!=1

正在回答

1 回答

这里nodeType的返回值不为1就是说它没有元素在里面,就不用管它的,就继续遍历后面的节点,当nodeType返回值为1的时候就是说这个节点下面还有元素,就需要remove掉。

0 回复 有任何疑惑可以回复我~
#1

三水朝山 提问者

如果没有这个判断句会怎样?
2016-07-25 回复 有任何疑惑可以回复我~
#2

小白t 回复 三水朝山 提问者

应该还是可以运行吧,就相当于全部节点都访问一次。现在代码并不多,所以可能看不出什么效果,以后在实际应用中代码多了,如果不加判断就会降低这个程序的效率,就会变得很慢。
2016-07-25 回复 有任何疑惑可以回复我~
#3

三水朝山 提问者 回复 小白t

不行,无法一次删除
2016-07-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468044    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

请教大神解答?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信