Gets or sets the text content of a node and its descendents.
var text = element.textContent; element.textContent = "this is some sample text";
nullif the element is a document, a document type, or a notation. To grab all of the text and CDATA data for the whole document, one could use
- If the node is a CDATA section, a comment, a processing instruction, or a text node,
textContentreturns the text inside this node (the nodeValue).
- For other node types,
textContentreturns the concatenation of the
textContentattribute value of every child node, excluding comments and processing instruction nodes. This is an empty string if the node has no children.
- Setting this property on a node removes all of its children and replaces them with a single text node with the given value.
Internet Explorer introduced
element.innerText. The intention is pretty much the same with a couple of differences:
- Note that while
textContentgets the content of all elements, including
<style>elements, the mostly equivalent IE-specific property,
innerText, does not.
innerTextis also aware of style and will not return the text of hidden elements, whereas textContent will.
innerTextis aware of CSS styling, it will trigger a reflow, whereas
innerHTML returns the HTML as its name indicates. Quite often, in order to retrieve or write text within an element, people use
textContent should be used instead. Since the text is not processed it's likely to have better performance. Moreover, this avoids an XSS vector attack.
// Given the following HTML fragment: // <div id="divA">This is <span>some</span> text</div> // Get the text content: var text = document.getElementById("divA").textContent; // |text| is set to "This is some text". // Set the text content: document.getElementById("divA").textContent = "This is some text"; // The HTML for divA is now: // <div id="divA">This is some text</div>
|Feature||Chrome||Firefox (Gecko)||Internet Explorer||Opera||Safari|
|Feature||Android||Firefox Mobile (Gecko)||IE Mobile||Opera Mobile||Safari Mobile|