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('...') with ":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 はリストの長さよりも 1 小さい値です。最後の要素を取得するには、実際にはimputs[imputs.length - 1];.

于 2013-02-21T21:34:35.627 に答える
1

配列はゼロベースです。長さは、配列の末尾の後にあるため、未定義のアイテムを提供します。使用する必要があります

imputs[lastIndex - 1]
于 2013-02-21T21:34:21.973 に答える