访问表单的最后一个输入元素

时间:2013-02-21 21:31:34

标签: javascript dom

在HTML文档中,我有一个表单,从表单中有几个输入元素(不是修订号)。我想得到最后一个输入元素。

我试过了:

imputs=document.getElementsByTagName('input');
lastIndex=imputs.length;
imputs[lastIndex] - here I get undefined

我不明白为什么以下代码有效,而之前没有:

lastIndex=10;
imputs[lastIndex]

3 个答案:

答案 0 :(得分:4)

imputs = document.getElementsByTagName('input');
lastIndex = imputs.length;
imputs[lastIndex - 1] 

Arrays ([upd。]和NodeList等)是基于JavaScript的0。

另外: * n * put 。 ;)


替代方法是document.querySelector('...') ":last-of-type"

document.querySelector('input:last-of-type').value = '42';

http://jsfiddle.net/zUVg5/

答案 1 :(得分:2)

getElementsByTagName()函数返回一个NodeList,其中包含具有指定标记名称的所有元素。可以使用方括号表示法通过指定索引来访问这些元素。

但是,列表中的元素从0到N编制索引,其中N比列表的长度小1。为了获得最后一个元素,您实际上需要imputs[imputs.length - 1];

答案 2 :(得分:1)

数组基于零。长度将为您提供一个未定义的项目,因为它在数组结束之后。你应该使用

imputs[lastIndex - 1]