Start · Sprachen · JavaScript · Referenz · HTMLTableSectionElement.ch

HTMLTableSectionElement.ch

Eigenschaft

Veraltete String-Eigenschaft, die das HTML-Attribut <code>char</code> eines <code>&lt;thead&gt;</code>, <code>&lt;tbody&gt;</code> oder <code>&lt;tfoot&gt;</code> spiegelt – sie hat keinerlei Auswirkung auf die Darstellung.

seit JavaScript Veraltet (HTML 4.01); in allen Browsern vorhanden, deprecated seit ja Kategorie: webapi

Signatur

HTMLTableSectionElement.ch

Beschreibung

Die Eigenschaft ch des Interfaces HTMLTableSectionElement spiegelt das veraltete HTML-Attribut char der Tabellenabschnitte <thead>, <tbody> und <tfoot> wider. In HTML 4.01 sollte damit ein Ausrichtungszeichen (z. B. das Dezimalkomma) festgelegt werden, an dem Zellinhalte bei align="char" vertikal ausgerichtet werden.

Kein aktueller Browser hat diese Ausrichtung jemals zuverlässig umgesetzt. Die Eigenschaft existiert heute nur noch aus Kompatibilitätsgründen: Lesen liefert den Attributwert als String (oder einen leeren String, wenn das Attribut fehlt), Schreiben setzt bzw. ändert das Attribut char im DOM – eine sichtbare Wirkung hat beides nicht.

Relevant ist ch praktisch nur beim Migrieren oder Analysieren von Alt-Markup, etwa um veraltete Attribute aufzuspüren und zu entfernen. Für neue Projekte sollte die Ausrichtung ausschließlich mit CSS erfolgen, z. B. über text-align und tabellarische Ziffern (font-variant-numeric: tabular-nums).

Rückgabewert

Typ
string
Beschreibung
Der Wert des Attributs char als String; ein leerer String "", wenn das Attribut nicht gesetzt ist. Beim Zuweisen wird das Attribut char entsprechend geschrieben.

Beispiele

Attributwert auslesen

// HTML: <table><tbody id="preise" char=","><tr><td>12,50</td></tr></tbody></table>
const tbody = document.getElementById('preise');
console.log(tbody.ch);                    // Spiegelung von char
console.log(tbody.getAttribute('char'));  // identischer Wert
, ,

Wert setzen – ändert nur das Attribut, nicht die Darstellung

const table = document.createElement('table');
const tbody = table.createTBody();
console.log(JSON.stringify(tbody.ch)); // noch nicht gesetzt

tbody.ch = '.';
console.log(tbody.outerHTML);
// Die Zellen werden trotzdem NICHT am Punkt ausgerichtet
"" <tbody char="."></tbody>

Alt-Markup bereinigen und durch CSS ersetzen

// Veraltete char-Attribute entfernen und moderne Ausrichtung per CSS setzen
const sections = document.querySelectorAll('thead, tbody, tfoot');
let bereinigt = 0;

for (const section of sections) {
  if (section.ch !== '') {
    section.removeAttribute('char');
    section.removeAttribute('charoff');
    section.style.textAlign = 'right';
    section.style.fontVariantNumeric = 'tabular-nums';
    bereinigt++;
  }
}
console.log(`${bereinigt} Tabellenabschnitt(e) bereinigt`);
1 Tabellenabschnitt(e) bereinigt

// Wichtig · Fallstricke

  • Keine Wirkung: Kein Browser richtet Zellinhalte anhand von ch bzw. char aus. Wer sich auf die Eigenschaft verlässt, bekommt nicht das erwartete Layout.
  • Veraltet: Das Attribut char ist in HTML5 als obsolet eingestuft und führt bei der Validierung zu Fehlern. Nicht in neuem Code verwenden.
  • Namensfalle: Die Eigenschaft heißt ch, das gespiegelte Attribut jedoch char, weil char früher ein reserviertes Wort in JavaScript war. Entsprechend spiegelt chOff das Attribut charoff.
  • Kompatibilität: Die Eigenschaft ist in allen gängigen Browsern vorhanden (reine Attributspiegelung), kann aber künftig entfernt werden. Zum Prüfen besser 'ch' in element verwenden.
  • Alternative: Zahlen mit CSS ausrichten, z. B. mit text-align: right und font-variant-numeric: tabular-nums.