Start · Sprachen · JavaScript · Referenz · HTMLTableElement.caption

HTMLTableElement.caption

Eigenschaft

Liefert das erste <code>&lt;caption&gt;</code>-Kindelement einer Tabelle oder <code>null</code>. Beim Setzen wird die Tabellenbeschriftung ersetzt oder entfernt.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

HTMLTableElement.caption

Beschreibung

Die Eigenschaft caption eines HTMLTableElement gibt das erste direkte <caption>-Kindelement der Tabelle als HTMLTableCaptionElement zurück. Gibt es keines, ist der Wert null. Damit kommen Sie schnell an die Tabellenbeschriftung, ohne selbst mit querySelector zu suchen.

Die Eigenschaft lässt sich auch setzen: Wenn Sie ein HTMLTableCaptionElement zuweisen, entfernt der Browser das bisherige erste <caption>-Element (falls vorhanden) und fügt das neue als erstes Kind der Tabelle ein. Wenn Sie null zuweisen, wird die vorhandene Beschriftung nur entfernt.

Oft sind die Hilfsmethoden bequemer: createCaption() gibt die vorhandene Beschriftung zurück oder legt eine neue an, und deleteCaption() entfernt sie. Eine Tabellenbeschriftung verbessert die Barrierefreiheit, weil Screenreader sie als zugänglichen Namen der Tabelle vorlesen.

Parameter

Name Typ Default Beschreibung
$value (beim Setzen) HTMLTableCaptionElement | null Neues <caption>-Element, das die bisherige Beschriftung ersetzt. Mit null wird die bestehende Beschriftung entfernt.

Rückgabewert

Typ
HTMLTableCaptionElement | null
Beschreibung
Das erste <caption>-Kindelement der Tabelle oder null, wenn es keines gibt.

Beispiele

Beschriftung auslesen

// HTML: <table id="umsatz"><caption>Umsatz 2024</caption>...</table>
const table = document.querySelector('#umsatz');
const caption = table.caption;

console.log(caption?.textContent ?? 'Keine Beschriftung vorhanden');
Umsatz 2024

Neue Beschriftung zuweisen (ersetzt die alte)

const table = document.querySelector('#umsatz');

const neu = document.createElement('caption');
neu.textContent = 'Umsatz 2024 (vorläufig)';

table.caption = neu; // alte caption wird entfernt, neue als erstes Kind eingefügt

console.log(table.firstElementChild === neu);
console.log(table.querySelectorAll('caption').length);
true 1

Beschriftung entfernen oder bei Bedarf anlegen

const table = document.querySelector('#umsatz');

// Entfernen – gleichwertig zu table.deleteCaption()
table.caption = null;
console.log(table.caption);

// Nur anlegen, wenn noch keine existiert
const cap = table.caption ?? table.createCaption();
cap.textContent = 'Quartalsübersicht';
console.log(table.caption.textContent);
null Quartalsübersicht

// Wichtig · Fallstricke

  • Wenn Sie ein Element zuweisen, das kein HTMLTableCaptionElement ist (z. B. ein <div> oder einen String), wird ein TypeError ausgelöst.
  • Berücksichtigt wird nur ein direktes Kindelement. Ein <caption>, das tiefer verschachtelt ist, wird ignoriert.
  • Ein zugewiesenes Element, das schon an anderer Stelle im DOM hängt, wird dorthin verschoben und nicht kopiert. Wenn Sie eine Kopie brauchen, verwenden Sie cloneNode(true).
  • Das HTML-Attribut align von <caption> ist veraltet. Positionieren Sie die Beschriftung mit der CSS-Eigenschaft caption-side.
  • Die Eigenschaft wird von allen Browsern unterstützt, auch von sehr alten.