Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
Node.textContent
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.
La propiedadtextContent de la interfazNode representa el contenido de texto de un nodo y sus dencendientes.
Nota:textContent yHTMLElement.innerText son confundidos con facilidad, peroambos son diferentes en varias formas importantes.
In this article
Sintaxis
var text = Node.textContent;Node.textContent = string;
Valor devuelto
Una cadena de texto onull
Descripción
Al obtener esta propiedad:
- Si el nodo es undocumento, unDOCTYPE, o unanotation,
textContentdevuelvenull. (Para obtener todo el texto y los datos deCDATA data del documento completo, uno podría usardocument.documentElement.textContent.) - Si el nodo es unasección CDATA, un comentario, unainstrucción de procesamiento, o unnodo de texto,
textContentdevuelve el texto dentro del nodo, por ejemplo, elNode.nodeValue. - Para otros tipos de nodos,
textContentretorna la concatenación del atributotextContentde todos los nodos hijos, excluyendo los nodos comentario y los nodos de instrucciones. Esto es una cadena vacía si el nodo no tiene hijos.
EstableciendotextContent en un nodo elimina todos sus hijos y los reemplaza con un solo nodo de texto con el valor dado.
Diferencias con innerText
Internet Explorer introdujoelemento.innerText. La intención es muy parecida, con un par de diferencias:
- Note que mientras
textContentlee el contenido de todos los elementos, incluyendo los elementos<script>y<style>,innerText, no. innerTexttambién tiene en cuenta el estilo y no retornará el texto de elementos escondidos, mientras quetextContentsí lo hará.- Como
innerTexttiene en cuenta el estilo CSS, escribirlo disparará un reflow, mientras quetextContentno lo hará.
Diferencias con innerHTML
innerHTML retorna el HTML como su nombre indica. Con bastante frecuencia, para leer o escribir texto en un elemento, la gente usainnerHTML.textContent debería usarse en su lugar. Ya que el texto no es procesado es más probable que tenga mejor rendimiento. Además, esto evita un vector de ataques XSS.
Ejemplo
// Dado el siguiente fragmento HTML:// <div>Esto <span>es</span>un texto</div>// Lee el contenido textual:var text = document.getElementById("divA").textContent;// |text| contiene la cadena "Esto es un texto".// Escribe el contenido textual:document.getElementById("divA").textContent = "Esto es un nuevo texto";// El HTML "divA" ahora contiene una nueva cadena:// <div>Esto es un nuevo texto</div>Especificaciones
| Specification |
|---|
| DOM> # dom-node-textcontent> |