问答详情
源自:9-14 删除节点removeChild()

关于显示已删除的 if语句的条件

<!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 childs=content.childNodes  while ((childs.length>0)&&(childs[0].nodeType!=1)) {    content.removeChild(childs[0])  }  //删除节点  var newDiv=document.createElement("div")  if (childs.length>0) {    var removeNode=content.removeChild(childs[0])    newDiv.innerHTML="clear "+removeNode.innerHTML+" done"  } else {    newDiv.innerHTML="没有可以删除的节点了"  }  content.parentNode.appendChild(newDiv)  //逐个显示已删除完成}</script><button onclick="clearText()">清除节点内容</button></body></html>

这是学生热门代码的第二个。

显示删除已完成的if语句的条件:  if (childs.length>0) 

为什么不能写if ((childs.length>0)&&(childs[0].nodeType!=1))

写成这样删除不了节点

有点理解不了,可能我childs[0].nodeType!=1没有理解好吧

提问者:幕布斯7253233 2018-08-25 00:11

个回答

  • 嬡凊丶琓芣起_0
    2018-08-26 14:02:29

    上面while() 执行后 conCN[0].nodeType != 1 这句就成==1了。所以if()就不成立导致if括号里面newDiv.innerHTML = "clear \"" + rmNode.innerHTML + "\" done!";(其实这句话就是赋值null的意思   如果要完全删除对象,给 x 赋 null 值,)