当我尝试从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
可能导致此类未定义的原因是什么?
答案 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)
,那么你可以看到你正在处理的所有属性是什么。