Start · Sprachen · JavaScript · Referenz · HTMLTableRowElement.ch

HTMLTableRowElement.ch

Eigenschaft

Veraltete String-Eigenschaft, die das HTML-Attribut <code>char</code> einer Tabellenzeile spiegelt. Auf die Darstellung wirkt sie sich nicht aus.

seit JavaScript Veraltet (deprecated) – in gängigen Browsern noch deprecated seit ja Kategorie: webapi

Signatur

HTMLTableRowElement.ch

Beschreibung

Die Eigenschaft ch des Interfaces HTMLTableRowElement spiegelt das veraltete HTML-Attribut char eines <tr>-Elements. Laut HTML 4 sollte dieses Attribut ein Zeichen festlegen, an dem sich der Zellinhalt ausrichtet, zum Beispiel am Dezimalpunkt bei Zahlenkolonnen. Das galt nur in Verbindung mit align="char".

Kein relevanter Browser hat diese Ausrichtung je umgesetzt. Die Eigenschaft liest und schreibt deshalb nur den Wert des Attributs, an der Darstellung ändert sich nichts. Ohne gesetztes Attribut liefert sie einen leeren String.

Sinnvoll ist ch heute nur noch in zwei Fällen: wenn man altes Markup ausliest oder migriert, und wenn man prüfen will, ob in bestehenden Dokumenten noch veraltete Attribute stecken. In neuem Code richtet man Zellinhalte mit CSS aus, zum Beispiel mit text-align, font-variant-numeric: tabular-nums oder mit Füllzeichen.

Rückgabewert

Typ
string
Beschreibung
Der aktuelle Wert des Attributs char. Ist das Attribut nicht gesetzt, ist der Wert ein leerer String "". Beim Schreiben wird das Attribut gesetzt, aber ohne sichtbare Wirkung.

Beispiele

Wert des char-Attributs auslesen

// HTML: <table><tr id="summe" align="char" char=","><td>12,50</td></tr></table>
const zeile = document.getElementById('summe');
console.log(zeile.ch);
console.log(zeile.getAttribute('char'));
, ,

Setzen spiegelt nur das Attribut, die Darstellung bleibt gleich

const tabelle = document.createElement('table');
const zeile = tabelle.insertRow();
zeile.insertCell().textContent = '3.14';

console.log(JSON.stringify(zeile.ch)); // Standardwert
zeile.ch = '.';
console.log(zeile.outerHTML);
"" <tr char="."><td>3.14</td></tr>

Migration: veraltete Attribute entfernen und durch CSS ersetzen

const altlastenBereinigen = (root = document) => {
  const zeilen = root.querySelectorAll('tr[char]');
  zeilen.forEach((tr) => {
    console.warn(`Veraltetes char="${tr.ch}" entfernt`, tr);
    tr.removeAttribute('char');
    tr.removeAttribute('charoff');
    // Moderner Ersatz: rechtsbündig mit gleich breiten Ziffern
    tr.style.textAlign = 'right';
    tr.style.fontVariantNumeric = 'tabular-nums';
  });
  return zeilen.length;
};

console.log(`${altlastenBereinigen()} Zeilen bereinigt`);
2 Zeilen bereinigt (abhängig vom Dokument)

// Wichtig · Fallstricke

  • Veraltet: Das Attribut char ist in HTML5 nicht mehr zulässig und wird vom Validator bemängelt. In neuem Code sollte man ch nicht verwenden.
  • Keine Wirkung: Kein aktueller Browser richtet Zellen nach dem Wert von ch aus. Auch align="char" wird ignoriert. Wer Zahlen am Dezimalzeichen ausrichten will, braucht CSS, etwa text-align: right zusammen mit font-variant-numeric: tabular-nums.
  • Namensunterschied: Die Eigenschaft heißt ch, das Attribut dagegen char. Das Gegenstück zu charoff ist chOff.
  • Kompatibilität: Chrome, Firefox und Safari stellen die Eigenschaft weiterhin bereit. Sie kann jedoch künftig wegfallen, daher lieber nicht fest einplanen. Robuster ist getAttribute('char').
  • Der Wert wird nicht geprüft. Beliebige Strings, auch mit mehreren Zeichen, werden unverändert ins Attribut übernommen.