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

.length和.length-1有什么不一样吗?

<!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">
document.write()
function clearText() {
  var content=document.getElementById("content");
  // 在此完成该函数
   for(var i=content.childNodes.length-1;i>0;i--){
       var y=content.childNodes[i];
       var x=content.removeChild(y);
       x=null;
   }
  
}
</script>

<button onclick="clearText()">清除节点内容</button>



</body>
</html>

<!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">
document.write()
function clearText() {
  var content=document.getElementById("content");
  // 在此完成该函数
   for(var i=content.childNodes.length;i>0;i--){
       var y=content.childNodes[i];
       var x=content.removeChild(y);
       x=null;
   }
  
}
</script>

<button onclick="clearText()">清除节点内容</button>



</body>
</html>

有什么不一样?为什么后者没显示?

提问者:Fornow 2015-10-12 20:18

个回答

  • 心悦君夕
    2015-10-14 10:29:33
    已采纳

    程序中一般的下标都是从0开始的,也就是最后一个元素的下标是该数组或者该对象的长度-1。如果你都写length的话有时候程序会出现意想不到的结果