まず例を見てみましょう:
document.forms[0] HTML ページ内にフォーム form が 1 つまたは複数ある場合、NodeList 型のフォーム配列が返されます
document.forms[0].usernames。ここで、ユーザー名は id の値または name の値であり、ここではこれら 2 つの属性は同等です。また、コンポーネントがテキスト ボックス、ラジオ ボタン、チェック ボックスのいずれであるかは区別されません。
現時点では 2 つの状況を区別する必要があります 、
ID または名前が「usernames」である入力がある場合、document.forms[0].usernames は特定の入力コンポーネントを返します。この時点で操作する場合は、特定のコンポーネントの操作方法に従って使用する必要があります。 。
この時点では、入力コンポーネントに length 属性がないため、alert(document.forms[0].usernames.length) は未定義を返します。
ID または名前が「usernames」である入力が 2 つ以上ある場合、document.forms[0].usernames は NodeList 配列を返します。このとき、
が返されます。
alert(document.forms[0].usernames.length) は配列の長さを返します。上記の例では、戻り値は 3
です。
したがって、js を使用してすべてを選択する場合は、同じ名前のチェックボックスが 1 つ以上あるかどうかを考慮する必要があります
「usernames」という ID を持つコンポーネントが 1 つある場合、または「usernames」という ID を持つコンポーネント ID が複数ある場合、document.getElementById('usernames') によって返される値はフォーム コンポーネントです。 「usernames」の ID。ID が「usernames」の最初のコンポーネントが返されます。
「usernames」という名前のコンポーネントが 1 つある場合、または「usernames」という名前のコンポーネントが複数ある場合、document.getElementsByName() は HTMLCollection 配列を返します。タグ カテゴリに基づいて配列を取得する document.getElementsByTagName() との違いに注意してください。
var names = document.getElementsByTagName("usernames"),alert(names[0]) ここで返される結果は元々 byName と byTagName を混同しており、ユーザー名で始まるタグはありません、
ただし、getElementsByTagName は、コンテンツを含まない配列コレクションを返します。names[0] は存在しないため、配列の範囲を超えると、すべての未定義の値がポップアップするため、unknown が返されます。
var test = {'0','1','2',};alert(test[3]); は未定義を返します。