document.links输出未知元素

时间:2014-07-13 07:28:38

标签: javascript

当我尝试从document.links数组输出元素时出现问题。原因是来自错误的for-loop实现。看看:

    // below is the HMTL 
    <p>
    <a name="one" href="http://www.kaskus.co.id">Kaskus</a><br>
    <a name="two" href="http://www.bola.net">Bola-net</a><br>
    <a name="three" href="http://www.kompas.co.id">Kompas</a><br>
    </p>        
     ....................
     ....................
     .....................

 // below is the JS 
 <script type="text/javascript">
     for( i in document.links){
          document.write("<br>"+document.links[i].text);
         }
 </script>

输出是:

Kaskus
博拉网
罗盘
undefined&lt; - 这甚至很有趣,这是什么?
Kaskus
博拉网
罗盘
undefined
undefined

可能导致此类未定义的原因是什么?

1 个答案:

答案 0 :(得分:1)

document.links对象为您提供了多种方式来访问文档中的链接。

首先,就像一个数组一样,每个数组都有一个数字索引以及一个长度(这就是你用&#34抱怨的东西;这甚至很有趣,这是什么&#34;,数字不要&# 39; t有文本属性)。然后,它允许您按名称访问它们(这样您就可以获得每个链接的第二个条目)。它还有一些悬挂它的功能。

将您的代码更改为:

document.write("<br>"+i+"  :  " +document.links[i].text);

并且您将看到所有您正在迭代的属性名称,这将是有意义的。

不要使用for in循环,使用传统的数组循环。

 for(var i = 0; i < document.links.length; i++){
     document.write("<br>"+document.links[i].text);
 }

你应该只有console.log(document.links),那么你可以看到你正在处理的所有属性是什么。