--- title: Node.textContent slug: Web/API/Node/textContent tags: - API - DOM - Property translation_of: Web/API/Node/textContent ---
{{APIRef("DOM")}}

A propriedade textContent da interface {{domxref("Node")}} representa o conteúdo de texto de um nó e dos seus descendentes.

Nota: textContent e {{domxref("HTMLElement.innerText")}} são facilmente confundidos, mas os dois possuem importantes diferenças entre sí.

Sintaxe

var text = Node.textContent;
Node.textContent = string;

Valor de retorno

Uma String ou null

Descrição

Ao obter valores desta propriedade:

Definir valores textContent em um nó, remove todos os nós filhos e os substituem por um único nó de texto cujo o valor é a string inserida.

Diferenças para o innerText

Não fique confuso pelas diferenças entre o Node.textContent e o {{domxref("HTMLElement.innerText")}}. Apesar dos nomes parecerem similares, eles possuem importantes diferenças:

Diferenças para o innerHTML

O {{domxref("Element.innerHTML")}} retorna HTML, Como seu próprio nome indica. As vezes as pessoas usam o innerHTML para obter ou escrever textos dentro de um elemento, mas o textContent possui melhor performance pois seus valores não são analisados como HTML. Além do mais, utilizar textContent pode prevenir ataques XSS.

Exemplos

Dado o seguinte fragmento HTML:

<div id="divA">Isto é<span>algum</span> texto!</div>

... Você pode usar textContent para obter o conteúdo de texto do elemento:

let text = document.getElementById('divA').textContent;
// Agora a variável de texto é: 'Isto é algum texto!'

... Ou definir o conteúdo de texto do elemento:

document.getElementById('divA').textContent = 'Este texto é diferente!';
// O HTML de divA agora é:
// <div id="divA">Este texto é diferente!</div>

Polyfill para o IE8

// Fonte: Eli Grey @ https://eligrey.com/blog/post/textcontent-in-ie8
if (Object.defineProperty
  && Object.getOwnPropertyDescriptor
  && Object.getOwnPropertyDescriptor(Element.prototype, "textContent")
  && !Object.getOwnPropertyDescriptor(Element.prototype, "textContent").get) {
  (function() {
    var innerText = Object.getOwnPropertyDescriptor(Element.prototype, "innerText");
    Object.defineProperty(Element.prototype, "textContent",
     // Passando innerText ou innerText.get diretamente não funciona,
     // Função wrapper(que envolve) é necessária.
     {
       get: function() {
         return innerText.get.call(this);
       },
       set: function(s) {
         return innerText.set.call(this, s);
       }
     }
   );
  })();
}

Browser compatibility

{{Compat("api.Node.textContent")}}

Especificações

Specification Status Comment
{{SpecName('DOM WHATWG','#dom-node-textcontent','Node.textContent')}} {{Spec2('DOM WHATWG')}} Sem alterações vs. DOM4
{{SpecName('DOM4','#dom-node-textcontent','Node.textContent')}} {{Spec2('DOM4')}}
{{SpecName('DOM3 Core','core.html#Node3-textContent','Node.textContent')}} {{Spec2('DOM3 Core')}} Introduzida

Veja também