The Text interface represents the textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.
New documents have a single Text node for each block of text. Over time, more Text nodes may be created as the document's content changes. The Node.normalize() method merges adjacent Text objects back into a single node for each block of text.
<div id="interfaceDiagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveAspectRatio="xMinYMin meet"><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/EventTarget" target="_top"><rect x="1" y="1" width="110" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="56" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">EventTarget</text></a><polyline points="111,25 121,20 121,30 111,25" stroke="#D4DDE4" fill="none"/><line x1="121" y1="25" x2="151" y2="25" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/Node" target="_top"><rect x="151" y="1" width="75" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="188.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">Node</text></a><polyline points="226,25 236,20 236,30 226,25" stroke="#D4DDE4" fill="none"/><line x1="236" y1="25" x2="266" y2="25" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/CharacterData" target="_top"><rect x="266" y="1" width="130" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="331" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">CharacterData</text></a><polyline points="396,25 406,20 406,30 396,25" stroke="#D4DDE4" fill="none"/><line x1="406" y1="25" x2="436" y2="25" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/Text" target="_top"><rect x="436" y="1" width="75" height="50" fill="#F4F7F8" stroke="#D4DDE4" stroke-width="2px" /><text x="473.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">Text</text></a></svg></div>
a:hover text { fill: #0095DD; pointer-events: all;}
Constructor
Text()- Returns a
Textnode with the parameter as its textual content.
Properties
Inherits properties from its parent, CharacterData.
Text.isElementContentWhitespaceRead only-
Returns a
Booleanflag indicating whether or not the text node contains only whitespace. Text.wholeTextRead only- Returns a
DOMStringcontaining the text of allTextnodes logically adjacent to thisNode, concatenated in document order. Text.assignedSlotRead only- Returns the
HTMLSlotElementobject associated with the element.
Methods
Inherits methods from its parent, CharacterData.
Text.replaceWholeText- Replaces the text of the current node and all logically adjacent nodes with the specified text.
Text.splitText- Breaks the node into two nodes at a specified offset.
Specifications
| Specification | Status | Comment |
|---|---|---|
| DOM The definition of 'Text' in that specification. |
Living Standard | Removed the isElementContentWhitespace property.Removed the replaceWholeText() method.Added the Text() constructor.Added the assignedSlot property. |
| Document Object Model (DOM) Level 3 Core Specification The definition of 'Text' in that specification. |
Recommendation | Added the isElementContentWhitespace and wholeText properties.Added the replaceWholeText() method. |
| Document Object Model (DOM) Level 2 Core Specification The definition of 'Text' in that specification. |
Recommendation | No change from Document Object Model (DOM) Level 1 Specification. |
| Document Object Model (DOM) Level 1 Specification The definition of 'Text' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | 1.0 [3] | (Yes) | 1.0 (1.7 or earlier) | (Yes) | (Yes) [3] | (Yes) [4] |
wholeText |
1.0 | (Yes) | 3.5 (1.9.1) | (Yes) | (Yes) | (Yes) |
isElementContentWhitespace |
No support | (Yes) | (Yes) Removed in 10 (10) |
No support | No support | No support |
replaceWholeText |
(Yes) [1] [2] | (Yes) | 3.5 (1.9.1) Removed in 10 (10) |
(Yes) | (Yes) [1] [2] | (Yes) [4] |
Text() constructor |
28.0 | (Yes) | 24.0 (24.0) | No support | 15.0 | No support |
| Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | (Yes) [3] | (Yes) | 1.0 (1.0) | (Yes) | (Yes) [3] | (Yes) [4] |
wholeText |
(Yes) | (Yes) | 1.0 (1.9.1) | (Yes) | (Yes) | (Yes) |
isElementContentWhitespace |
No support | (Yes) | (Yes) Removed in 10.0 (10) |
No support | No support | No support |
replaceWholeText |
(Yes) [1] [2] | (Yes) | 1.0 (1.9.1) Removed in 10.0 (10) |
(Yes) | (Yes) [1] [2] | (Yes) [4] |
Text() constructor |
(Yes) | (Yes) | 24.0 (24.0) | No support | 15.0 | No support |
[1] Chromium is currently considering dropping its support.
[2] Before Chrome 30 and Opera 17, the argument wasn't mandatory, like required by the specification.
[3] Before Chrome 30 and Opera 17, splitText() argument was not mandatory, as required by the specification and implemented by IE and Gecko-based browsers.
[4] The argument is not mandatory, though required by the spec.