<html >
<head >
<meta http-equiv="content-type" content="text/html;charset=gbk"/>
<title>Image Gallery</title>
<script id="script" type="text/javascript" src="scripts/showpic.js" >
//alert(document.getElementsByTagName("body")[0].childNodes.length); //1、假如执行这句 结果是7,请问下怎么是7
// window.onload = countBodyChildren()//2、我问下 需要在加载时 显示上一句的结果 这句写在哪里, 我写这里没效果,所以我加到下面的onclick里面了

</script>   
</head>
<body >

<h1 >Snapshots</h1>
<ul > 
<li > 
<a  href="keling.gif" title="可怜" onclick="countBodyChildren(); return false"> 可怜的鱼兔妹</a>
</li>
<li>
<a href="diao.gif" title="上吊" onclick="showPic(this); return false"> 上吊的鱼兔妹</a>
</li>
<li >
<a href="tiao.gif" title="跳跳" onclick="showPic(this); return false"> 得瑟的鱼兔妹</a>
</li>

</ul> 
<img id="placeholder" src="kongbai.jpg" alt="my image gallery"/>

</body>

</html>

解决方案 »

  1.   


    function countBodyChildren(){
                alert(document.getElementsByTagName("body")[0].childNodes.length); //1、假如执行这句 结果是7,请问下怎么是7
                var cs = document.getElementsByTagName("body")[0].childNodes;//获取body的所有子元素
                for(var i=0; i<cs.length; i++){//循环所有子元素(部分元素为文本元素  所以比你看到的多)
                    alert("tagName:"+cs[i].tagName+"\nnodeType:"+cs[i].nodeType+"\nnodeName:"+cs[i].nodeName+"\nnodeValue:"+cs[i].nodeValue);
                }
            }
            window.onload = function(){//页面加载完成后才可以调用
                countBodyChildren();
            }
      

  2.   


               //alert(document.getElementsByTagName("body")[0].childNodes.length); //1、假如执行这句 结果是7,请问下怎么是7
    //我测试得出的是4
                    // window.onload = countBodyChildren()//2、我问下 需要在加载时 显示上一句的结果 这句写在哪里, 我写这里没效果,所以我加到下面的onclick里面了
    //应该写在<body>里,如<body onload="countBodyChildren()">            
      

  3.   

    可能是空白或者回車就會造成多出childNodes节点的,里面其实是nodeType為3的文本節點第二个
     <body onload="countBodyChildren();" >    
    放在body里面就可以了
      

  4.   


      7 
      我理解的是
     <body></body> 这里有个空的文本节点,  <body>里面有3个元素节点 以及各一个文本节点, 最后是7个,
     猜测= =, 才看js 方法都不知道  没获取到文本信息,  
     是这个意思么?
      

  5.   

    你用的是火狐吧    
    火狐测试是7个  3个元素节点 4个文本节点
    IE测试是4   3个元素节点  最后加一个文本节点可以根据这个nodeType 属性获取节点类型
      

  6.   

     
      谢谢,我开始是用ie,后来试试火狐。 都是7
      现在发现ie是 4.