在HTML文档中,我有一个表单,从表单中有几个输入元素(不是修订号)。我想得到最后一个输入元素。
我试过了:
imputs=document.getElementsByTagName('input');
lastIndex=imputs.length;
imputs[lastIndex] - here I get undefined
我不明白为什么以下代码有效,而之前没有:
lastIndex=10;
imputs[lastIndex]
答案 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';
答案 1 :(得分:2)
getElementsByTagName()
函数返回一个NodeList
,其中包含具有指定标记名称的所有元素。可以使用方括号表示法通过指定索引来访问这些元素。
但是,列表中的元素从0到N编制索引,其中N比列表的长度小1。为了获得最后一个元素,您实际上需要imputs[imputs.length - 1];
。
答案 2 :(得分:1)
数组基于零。长度将为您提供一个未定义的项目,因为它在数组结束之后。你应该使用
imputs[lastIndex - 1]