document.getElementsByTagName(“a”)的奇怪问题

时间:2011-03-05 08:58:23

标签: javascript

为什么它不将'number'识别为以下代码中的变量,第二行?

var number = document.getElementsByTagName("a").length;
var link = document.getElementsByTagName("a")[number].href;

当然它适用于任何实数而不是变量。

2 个答案:

答案 0 :(得分:2)

document.getElementsByTagName("a")返回的数组是从0开始的,因此,根据定义,您所寻找的索引不存在。我想你可能是这个意思:

var number = document.getElementsByTagName("a").length;
var link = document.getElementsByTagName("a")[number-1].href;

:)

编辑:

尝试使用firebug将值转储到控制台进行调试 - 问题会很快变得明显:)

var number = document.getElementsByTagName("a").length;
console.log("number = "+number);
var link = document.getElementsByTagName("a")[number-1].href;

答案 1 :(得分:2)

JavaScript数组从零开始,因此,您需要使用number-1来获取最后一个元素。