Start · Sprachen · JavaScript · Referenz · HTMLLIElement.value

HTMLLIElement.value

Eigenschaft

Liest oder setzt die Ordnungszahl eines <code>&lt;li&gt;</code>-Elements innerhalb einer geordneten Liste <code>&lt;ol&gt;</code>; spiegelt das HTML-Attribut <code>value</code>.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

HTMLLIElement.value

Beschreibung

Die Eigenschaft value der Schnittstelle HTMLLIElement ist ein Integer, der das HTML-Attribut value eines <li>-Elements spiegelt. In einer geordneten Liste (<ol>) legt sie fest, welche Nummer dieses Listenelement anzeigt. Alle folgenden Einträge zählen ab diesem Wert weiter, also ab value + 1 (bzw. value - 1 bei reversed-Listen).

Typische Einsatzfälle sind fortgesetzte Nummerierungen (z. B. eine Liste, die nach einem Absatz bei 5 weiterläuft), Sprünge in der Zählung oder dynamisch erzeugte Ranglisten, bei denen einzelne Positionen gezielt gesetzt werden sollen. Das Setzen der Eigenschaft schreibt das Attribut value in das DOM.

Wichtig: Die Eigenschaft gibt nicht die tatsächlich angezeigte Nummer zurück, sondern nur den Attributwert. Ist kein value-Attribut gesetzt, liefert sie 0 – auch wenn der Browser das Element etwa als „3.“ darstellt. In ungeordneten Listen (<ul>) oder <menu> hat der Wert keine sichtbare Wirkung.

Rückgabewert

Typ
number
Beschreibung
Ganzzahl (long) aus dem Attribut value; 0, wenn das Attribut fehlt oder nicht als Ganzzahl interpretierbar ist. Beim Schreiben wird der Wert in eine Ganzzahl umgewandelt und als Attribut gesetzt.

Beispiele

Wert auslesen und setzen

// HTML: <ol><li>Alpha</li><li value="10">Beta</li><li>Gamma</li></ol>
const items = document.querySelectorAll('ol > li');

console.log(items[0].value); // kein Attribut gesetzt
console.log(items[1].value); // Attribut value="10"

// Gamma soll als Nummer 42 erscheinen
items[2].value = 42;
console.log(items[2].getAttribute('value'));
0 10 "42"

Nummerierung einer zweiten Liste fortsetzen

// Zwei getrennte <ol>-Listen, die zweite soll weiterzählen
const [first, second] = document.querySelectorAll('ol.steps');
const count = first.querySelectorAll(':scope > li').length;

const firstItem = second.querySelector(':scope > li');
if (firstItem) {
  firstItem.value = count + 1; // folgende Einträge zählen automatisch weiter
}
console.log(`Zweite Liste startet bei ${firstItem.value}`);
Zweite Liste startet bei 4

Rangliste mit geteilten Plätzen

const players = [
  { name: 'Anna', score: 98 },
  { name: 'Ben', score: 95 },
  { name: 'Cem', score: 95 },
  { name: 'Dora', score: 90 }
];

const ol = document.createElement('ol');
let rank = 0;
players.forEach((p, i) => {
  if (i === 0 || p.score < players[i - 1].score) rank = i + 1;
  const li = document.createElement('li');
  li.textContent = `${p.name} (${p.score})`;
  li.value = rank; // gleiche Punktzahl = gleicher Platz
  ol.append(li);
});
document.body.append(ol);
console.log([...ol.children].map(li => li.value));
[1, 2, 2, 4]

// Wichtig · Fallstricke

  • Kein Ist-Wert: li.value liefert nur das Attribut, nicht die gerenderte Nummer. Ohne Attribut ist der Wert 0. Die tatsächliche Position musst du selbst berechnen (z. B. aus ol.start und dem Index).
  • Nachfolger: Das Setzen beeinflusst die Nummerierung aller folgenden <li>, nicht nur des einen Elements.
  • Typumwandlung: Nicht-numerische Werte ergeben 0, Dezimalzahlen werden abgeschnitten. Negative Werte sind erlaubt.
  • Anzeige-Stil: Die Zahl ist immer numerisch; ob sie als „iv“ oder „D“ erscheint, entscheidet type der Liste bzw. CSS list-style-type.
  • CSS-Zähler: Bei eigenen counter()-Darstellungen wirkt value nur auf den eingebauten Zähler list-item.
  • Wird in allen modernen Browsern unterstützt; die Eigenschaft ist in HTML5 nicht mehr veraltet.