<body>
    <a href="http://www.cctv.com/default.shtml"><span style="color: #000000">中央电视台</span></a><br />
    <a href="http://www.sina.com.cn"><span style="color: #000000">新 浪</span></a><br />
    <a href="http://www.baidu.com/"><span style="color: #000000">百 度</span></a><br />
    <a href="http://www.163.com/"><span style="color: #000000">网 易</span></a><br />
    <a href="http://www.china.com"><span style="color: #000000">中 华 网</span></a><br />
    <a href="http://www.google.cn"><span style="color: #000000">Google</span></a>
    <script language="javascript">
        var adr = "";
        for( n in document.links )                          // 遍历超级链接集合
        {
            if( document.links.length == document.links[n] )// 忽略集合的第一个元素,因为表示集合的元素个数
            {
                continue;                                   // 直接下一轮循环
            }
                        // 提取链接名和网址,添加到字符串中
            adr += document.links[n].childNodes[0].childNodes[0].toString() + ":\t"+ document.links[n] + "\n";
        }
        alert( adr );   // 对话框输出显示
    </script>
</body>
问下,document.links[n].childNodes[0].childNodes[0].toString()什么意思?DOM但是还是不懂。前高手指点,谢谢!

解决方案 »

  1.   

    document.links[n].childNodes[0]==SPANdocument.links[n].childNodes[0].childNodes[0]==SPAN里面的文本节点这个遍历代码再firefox下出错了,firefox下会有length和item属性,而且在最后,比ie多length,并且获取文本内容要使用nodeValue,而不是toString  var adr = "";
      for(var i=0,j=document.links.length;i<j;i++){
      adr += document.links[i].childNodes[0].childNodes[0].nodeValue + ":\t"+ document.links[i] + "\n";
      }
     
      alert( adr ); // 对话框输出显示
      

  2.   

    document.links[n].childNodes[0].childNodes[0].toString()
    document.links[n] 获取第N个a
    document.links[n].childNodes[0] 获取第N个a第一个节点
    document.links[n].childNodes[0].childNodes[0] 获取第N个a第一个节点的第一个节点
    toString()返回字符串形式 正常情况等同于valueof
      

  3.   

    但是这样可能会很蛋疼 
    因为只有DOM浏览器才将文本算作文本节点,IE的文本就不算一个节点 
    so 如果你想获取文本节点,最好parentNode.innerHTML()
      

  4.   

    针对你贴出来的这个DOM,我想这样你会更好理解点
    先将你的:
    document.links[n].childNodes[0].childNodes[0].toString()[PS:获取节点文本,这里应该是nodeValue,而不是toString()]
    变更为
    document.links[i].childNodes[0].innerHTML
    //i是数组下标,从0开始
    document.links[i] 获取第i个a
    document.links[i].childNodes[0] 获取第i个a下面的第一个节点,因些我们得到了<span></span>
    document.links[i].childNodes[0].innerHTML 获取第i个a下面的第一个节点的文本内容.即获取第一个<span>标签内的内容
      

  5.   

    是tostring()。我已经找到答案了。和你的很相似。很好的,采纳。谢谢了。希望多指点。
      

  6.   

    那 我想请教  为什么要对a标签内  中央电视台这些 设置<span> 如果没有这个 代码就没办法正常运行 觉得好奇怪