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 dessen Nachkommen.
Hinweis:
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
documentoder ein doctype ist, gibttextContentnullzurü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
textContentden Text innerhalb des Knotens zurück oder setzt ihn, d.h. denNode.nodeValue. -
Für andere Knotentypen gibt
textContentdie Verkettung destextContentjedes Kindknotens zurück, ausgenommen Kommentare und Verarbeitungsanweisungen. (Dies ist ein leerer String, wenn der Knoten keine Kinder hat.)
Warnung:
Wenn Sie textContent für einen Knoten festlegen, werden alle Kindknoten des Knotens entfernt und durch einen einzelnen Textknoten mit dem angegebenen String-Wert 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 „menschlich lesbare“ Elemente.textContentgibt jedes Element im Knoten zurück. Im Gegensatz dazu nimmtinnerTextRücksicht auf das Styling und gibt den Text von „versteckten“ Elementen nicht zurück.- Da
innerTextCSS-Stile berücksichtigt, löst das Lesen des Werts voninnerTextein Reflow aus, um sicherzustellen, dass die berechneten Stile auf dem neuesten Stand sind. (Reflows können rechnerisch aufwändig sein und sollten daher nach Möglichkeit vermieden werden.)
- Da
Unterschiede zu innerHTML
Element.innerHTML erhält oder setzt HTML, wie der Name andeutet. Wir raten davon ab, innerHTML zu verwenden, um Text in einem Element zu erhalten oder zu setzen, da es mit rohem HTML statt mit reinem Text arbeitet und anfällig für XSS-Attacken sein kann. Selbst wenn Sie sicher sind, dass der Text niemals HTML-Syntax enthält, ist es dennoch weniger semantisch und langsamer, da der HTML-Parser aufgerufen werden muss.
Beispiele
Beginnen Sie mit diesem HTML-Fragment.
<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 festlegen möchten, können Sie dies 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…