2

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

我试过:

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

我不明白为什么以下代码有效而前一个无效:

lastIndex=10;
imputs[lastIndex]
4

3 回答 3

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

数组([upd.] 和 NodeList 等)在 JavaScript 中是 0。

另外:i *n* puts。;)


另一种方法是document.querySelector('...')":last-of-type"

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

http://jsfiddle.net/zUVg5/

于 2013-02-21T21:33:49.590 回答
2

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

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

于 2013-02-21T21:34:35.627 回答
1

数组是从零开始的。长度会给你一个未定义的项目,因为它在数组的末尾。你应该使用

imputs[lastIndex - 1]
于 2013-02-21T21:34:21.973 回答