Node: textContent Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die textContent-Eigenschaft des Node-Interfaces repräsentiert den Textinhalt des Knotens und seiner Nachkommen.

Note: textContent und HTMLElement.innerText werden leicht verwechselt, aber die beiden Eigenschaften sind in wichtigen Punkten unterschiedlich.

Wert

Ein String oder null. Sein Wert hängt von der Situation ab:

  • Wenn der Knoten ein document oder ein doctype ist, gibt textContent null zurück.

    Hinweis: Um alle Text- und CDATA-Daten für das gesamte Dokument zu erhalten, verwenden Sie document.documentElement.textContent.

  • Wenn der Knoten ein CDATA-Abschnitt, ein Kommentar, eine Verarbeitungsanweisung oder ein Textknoten ist, gibt textContent den Text innerhalb des Knotens zurück oder setzt ihn, d.h. den Node.nodeValue.

  • Für andere Knotentypen gibt textContent die Verkettung des textContent jedes Kindknotens zurück, mit Ausnahme von Kommentaren und Verarbeitungsanweisungen. (Dies ist ein leerer String, wenn der Knoten keine Kinder hat.)

Warnung: Das Setzen von textContent auf einem Knoten entfernt alle Kinder des Knotens und ersetzt sie durch einen einzigen Textknoten mit dem angegebenen Zeichenfolgenwert.

Unterschiede zu innerText

Lassen Sie sich nicht von den Unterschieden zwischen Node.textContent und HTMLElement.innerText verwirren. Obwohl die Namen ähnlich erscheinen, gibt es wichtige Unterschiede:

  • textContent erfasst den Inhalt aller Elemente, einschließlich <script>- und <style>-Elementen. Im Gegensatz dazu zeigt innerText nur "menschlich lesbare" Elemente.

  • textContent gibt jedes Element im Knoten zurück. Im Gegensatz dazu ist innerText styling-bewusst und gibt den Text von "versteckten" Elementen nicht zurück.

    • Da innerText CSS-Stile berücksichtigt, löst das Lesen des Werts von innerText ein Reflow aus, um aktuelle berechnete Stile sicherzustellen. (Reflows können rechnerisch aufwendig sein und sollten daher nach Möglichkeit vermieden werden.)

Unterschiede zu innerHTML

Element.innerHTML gibt HTML zurück, wie der Name schon sagt. Manchmal verwenden Leute innerHTML, um Text innerhalb eines Elements zu lesen oder zu schreiben, aber textContent hat eine bessere Leistung, da der Wert nicht als HTML geparst wird.

Darüber hinaus kann die Verwendung von textContent XSS-Angriffe verhindern.

Beispiele

Beginnen Sie mit diesem HTML-Fragment.

html
<div id="divA">This is <span>some</span> text!</div>

Sie können textContent verwenden, um den Textinhalt des Elements zu erhalten:

js
let text = document.getElementById("divA").textContent;
// The text variable is now: 'This is some text!'

Wenn Sie den Textinhalt des Elements setzen möchten, können Sie folgendes tun:

js
document.getElementById("divA").textContent = "This text is different!";
// The HTML for divA is now:
// <div id="divA">This text is different!</div>

Spezifikationen

Specification
DOM Standard
# dom-node-textcontent

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch