Signatur
Beschreibung
Die Methode item() liefert die Option an Position index aus der Optionsliste eines <select>-Elements. Die Zählung beginnt bei 0 und folgt der Reihenfolge im Dokument. Optionen innerhalb von <optgroup>-Elementen werden mitgezählt, die Gruppen selbst nicht.
Das Ergebnis ist dasselbe wie bei select.options.item(index) oder dem Indexzugriff select[index] bzw. select.options[index]. Es gibt einen Unterschied: Bei einem ungültigen Index gibt item() null zurück, der Klammerzugriff dagegen undefined.
In der Praxis nutzt man item(), um eine Option an einer bekannten Position zu lesen, etwa die aktuell gewählte über selectedIndex, die erste Platzhalter-Option oder die letzte Option. Wer nach dem value oder der id einer Option sucht, nimmt besser namedItem() oder querySelector().
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $index Pflicht | number | Nullbasierte Position der gewünschten Option. Der Wert wird in eine vorzeichenlose 32-Bit-Ganzzahl (unsigned long) umgewandelt. Negative Werte werden dabei zu sehr großen Zahlen und liefern deshalb null. |
Rückgabewert
null, wenn der Index außerhalb der Liste liegt.Beispiele
Aktuell gewählte Option auslesen
// HTML: <select id="land"><option value="de">Deutschland</option><option value="at" selected>Österreich</option><option value="ch">Schweiz</option></select>
const select = document.getElementById('land');
const gewaehlt = select.item(select.selectedIndex);
console.log(gewaehlt?.value, gewaehlt?.text);
Ungültiger Index: null statt undefined
const select = document.createElement('select');
select.add(new Option('Rot', 'red'));
select.add(new Option('Blau', 'blue'));
console.log(select.item(1).value); // "blue"
console.log(select.item(5)); // null
console.log(select[5]); // undefined
console.log(select.item(-1)); // null
Alle Optionen durchlaufen, auch innerhalb von optgroup
// HTML: <select id="auto"><optgroup label="Deutsch"><option>VW</option><option>BMW</option></optgroup><optgroup label="Japanisch"><option>Toyota</option></optgroup></select>
const select = document.querySelector('#auto');
for (let i = 0; i < select.length; i++) {
const opt = select.item(i);
console.log(i, opt.text, opt.parentElement.label);
}
Platzhalter-Option prüfen
const form = document.querySelector('form');
const select = form.querySelector('select[name="groesse"]');
form.addEventListener('submit', (event) => {
// Die erste Option ist ein Platzhalter wie "Bitte wählen …"
if (select.item(select.selectedIndex) === select.item(0)) {
event.preventDefault();
alert('Bitte eine Größe auswählen.');
}
});
// Wichtig · Fallstricke
nullundundefined:item()gibt bei ungültigem Indexnullzurück,select[i]dagegenundefined. Das spielt eine Rolle, wenn man strikt mit===vergleicht.- Kein Zugriff vom Ende her: Anders als
Array.prototype.at()verstehtitem()keine negativen Indizes.item(-1)liefertnull. Für die letzte Option schreibt manselect.item(select.length - 1). - Keine Auswahl: Ist nichts gewählt, hat
selectedIndexden Wert-1, unditem(select.selectedIndex)gibtnullzurück. Optional Chaining (?.) verwenden. - Liste ändert sich: Die Optionsliste ist live. Werden Optionen hinzugefügt oder entfernt, zeigen dieselben Indizes danach auf andere Elemente.
- Kompatibilität: Wird von allen Browsern seit Langem unterstützt, auch vom alten Internet Explorer.