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

Javascript 访问表单的最后一个输入元素,javascript,dom,Javascript,Dom,在HTML文档中,我有一个表单,表单中有几个输入元素(不是固定数字)。我想得到最后一个输入元素 我试过: imputs=document.getElementsByTagName('input'); lastIndex=imputs.length; imputs[lastIndex] - here I get undefined 我不明白为什么下面的代码有效,而前面的代码无效: lastIndex=10; imputs[lastIndex] 数组([upd.]和节点列表等)在JavaScri

在HTML文档中,我有一个表单,表单中有几个输入元素(不是固定数字)。我想得到最后一个输入元素

我试过:

imputs=document.getElementsByTagName('input');
lastIndex=imputs.length;
imputs[lastIndex] - here I get undefined
我不明白为什么下面的代码有效,而前面的代码无效:

lastIndex=10;
imputs[lastIndex]
数组([upd.]和节点列表等)在JavaScript中基于0

还有:i*n*puts.)


另一种方法是:


阵列是以零为基础的。长度将为您提供一个未定义的项,因为它位于数组末尾之后。你应该使用

imputs[lastIndex - 1]

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

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

数组索引基于0,但返回的
getElementsByTagName()
不是数组,而是
节点列表
;仍然是0索引的,但并非具有数组所具有的所有方法。
document.querySelector('input:last-of-type').value = '42';
imputs[lastIndex - 1]