JavaScript

The item() method is a method for retrieving elements from NodeList or HTMLCollection objects, and cannot be used with regular arrays.

item() [method]

 item()メソッドは、特定のコレクション内の項目にアクセスするために使用されます。このメソッドは、NodeList、HTMLCollection、そして select要素の option要素の子孫要素を持つことができるオブジェクトのプロトタイプに含まれています。通常の配列には含まれていないため、注意が必要です。

 NodeListや HTMLCollectionは、DOM(Document Object Model)内で要素を取得するために使用されるオブジェクトであり、たとえば、querySelectorAll()メソッドによって返されるオブジェクトの一種です。これらのオブジェクトに対して、item()メソッドを使用することで、そのインデックスに対応する要素を取得できます。

 以下は、NodeListを使って item()メソッドを使用する例です。


<ul>
	<li>Item1</li>
	<li>Item2</li>
	<li>Item3</li>
</ul>

<script>
	const listItems = document.querySelectorAll('li'); // ul要素内のすべてのli要素を取得
	console.log(listItems.item(0)); // 最初のli要素を取得
	console.log(listItems.item(1)); // 2番目のli要素を取得
</script>

item()メソッドの実行画像

 上記の例では、querySelectorAll()メソッドを使用して、ul要素内のすべての li要素を取得し、それらを NodeListオブジェクトとして取得しています。その後、item()メソッドを使用して、NodeList内の特定の項目にアクセスしています。

 item()メソッドの代わりに、配列のように角括弧構文を使用することもできます。


	console.log(listItems[0]); // 最初のli要素を取得
	console.log(listItems[1]); // 2番目のli要素を取得

 しかし、通常の配列には含まれないため、NodeListや HTMLCollectionオブジェクトを操作する際には、item()メソッドを使用することをお勧めします。

 また、item()メソッドは、存在しないインデックスを指定した場合には null を返します。例えば、以下のようにリストの長さを超えたインデックスを指定すると、nullが返されます。


const listItems = document.querySelectorAll('li'); // ul要素内のすべてのli要素を取得
const invalidItem = listItems.item(100); // リストの長さを超えるインデックスを指定する
console.log(invalidItem); // null

存在しないインデックスを指定したitem()メソッドの実行画像

 一方、配列の場合には、存在しないインデックスを指定した場合には undefined が返されます。例えば、以下のように配列の長さを超えたインデックスを指定すると、undefinedが返されます。


const arr = ['a', 'b', 'c'];
const invalidItem = arr[100]; // 配列の長さを超えるインデックスを指定する
console.log(invalidItem); // undefined

存在しないインデックスを指定したitem()メソッドの実行画像

 つまり、NodeListや HTMLCollectionオブジェクトを操作する場合には、存在しないインデックスを指定した場合にもエラーが発生しないため、item()メソッドは安全に使用できます。

 最後に、item()メソッドは、配列には存在しないため、通常の配列に対して使用することはできません。代わりに、配列にアクセスするには、角括弧構文を使用して、配列のインデックスを指定する必要があります。


const arr = ['a', 'b', 'c'];
console.log(arr[0]); // 最初の要素を取得
console.log(arr[1]); // 2番目の要素を取得