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 Juli 2015.
Die textContent-Eigenschaft des Node-Interfaces repräsentiert den Textinhalt des Knotens und seiner Nachkommen.
Hinweis:
textContent und HTMLElement.innerText werden leicht verwechselt,
aber die beiden Eigenschaften sind in wichtigen Punkten unterschiedlich.
Wert
Ein String oder null. Der Wert hängt von der Situation ab:
-
Wenn der Knoten ein
documentoder ein doctype ist, gibttextContentnullzurück.Hinweis: Um alle Texte und CDATA-Daten für das gesamte Dokument zu erhalten, verwenden Sie
document.documentElement.textContent. -
Wenn der Knoten ein CDATA-Bereich, ein Kommentar, eine Verarbeitungsanweisung oder ein Textknoten ist, gibt
textContentden Text im Knoten zurück oder setzt ihn, d.h. denNode.nodeValue. -
Für andere Knotentypen gibt
textContentdie Verkettung dertextContentjedes Kindknotens zurück, ausgenommen Kommentare und Verarbeitungsanweisungen. (Dies ist eine leere Zeichenfolge, wenn der Knoten keine Kinder hat.)
Warnung:
Wenn Sie textContent auf einem Knoten setzen, werden alle Kinder dieses Knotens entfernt
und durch einen einzigen Textknoten mit dem angegebenen Zeichenfolgenwert ersetzt.
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:
textContenterhält den Inhalt aller Elemente, einschließlich<script>- und<style>-Elementen. Im Gegensatz dazu zeigtinnerTextnur "für Menschen lesbare" Elemente.textContentgibt jedes Element im Knoten zurück. Im Gegensatz dazu berücksichtigtinnerTextdas Styling und gibt den Text von "versteckten" Elementen nicht zurück.- Da
innerTextjedoch CSS-Stile berücksichtigt, löst das Lesen desinnerText-Wertes ein Reflow aus, um sicherzustellen, dass die berechneten Stile auf dem neuesten Stand sind. (Reflows können rechenintensiv sein und sollten daher möglichst vermieden werden.)
- Da
Unterschiede zu innerHTML
Element.innerHTML erhält oder setzt HTML, wie der Name schon sagt. Wir raten davon ab, innerHTML zu verwenden, um Text innerhalb eines Elements zu erhalten oder zu setzen, da es mit rohem HTML anstelle von Klartext arbeitet und anfällig für XSS-Angriffe sein kann. Selbst wenn Sie sicher sind, dass der Text niemals HTML-Syntax enthält, ist es immer noch weniger semantisch und langsamer, da der HTML-Parser aufgerufen werden muss.
Beispiele
Beginnen Sie mit diesem HTML-Fragmente.
<div id="divA">This is <span>some</span> text!</div>
Sie können textContent verwenden, um den Textinhalt des Elements zu erhalten:
let text = document.getElementById("divA").textContent;
// The text variable is now: 'This is some text!'
Wenn Sie den Textinhalt des Elements einstellen möchten, können Sie folgendes tun:
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> # dom-node-textcontent> |
Browser-Kompatibilität
Loading…