Узел: свойство textContent
Базовая линия Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство textContent интерфейса Node представляет собой текстовое содержимое узла и его потомков.
Примечание: textContent и HTMLElement.innerText легко перепутать, но эти два свойства отличаются в важных аспектах.
Значение
Строка или null. Его значение зависит от ситуации:
-
Если узел является
documentили документом типа,textContentвозвращаетnull.Примечание: Чтобы получить все текст и данные CDATA для всего документа, используйте
document.documentElement.textContent. -
Если узел является разделом CDATA, комментарием, инструкцией обработки или узлом текста,
textContentвозвращает или устанавливает текст внутри узла, т. е.,Node.nodeValue. -
Для других типов узлов
textContentвозвращает конкатенациюtextContentкаждого дочернего узла, за исключением комментариев и инструкций обработки. (Это пустая строка, если у узла нет дочерних узлов.)
Предупреждение: Установка textContent для узла удаляет все дочерние узлы и заменяет их одним узлом текста со значением заданной строки.
Отличия от innerText
Не путайте различия между Node.textContent и HTMLElement.innerText. Несмотря на то, что имена кажутся похожими, существуют важные различия:
-
textContentполучает содержимое всех элементов, включая<script>и<style>элементы. В отличие от этого,innerTextотображает только элементы, "читаемые человеком". -
textContentвозвращает каждый элемент в узле. В отличие от этого,innerTextучитывает стили и не вернёт текст "скрытых" элементов.- Кроме того, так как
innerTextучитывает стили CSS, чтение значенияinnerTextвызывает перерасчёт, чтобы гарантировать актуальность вычисленных стилей. (Перерасчёты могут быть вычислительно дорогими, и их следует избегать, когда это возможно.)
- Кроме того, так как
Отличия от innerHTML
Element.innerHTML возвращает HTML, как подсказывает его название. Иногда люди используют innerHTML для извлечения или записи текста внутри элемента, но textContent обладает лучшей производительностью, потому что его значение не анализируется как HTML.
Кроме того, использование textContent может предотвратить атаки XSS.
Примеры
Начните с этого фрагмента HTML.
<div id="divA">This is <span>some</span> text!</div>
Вы можете использовать textContent для получения текстового содержимого элемента:
let text = document.getElementById("divA").textContent;
// The text variable is now: 'This is some text!'
Если вы предпочитаете установить текстовое содержимое элемента, вы можете сделать так:
document.getElementById("divA").textContent = "This text is different!";
// The HTML for divA is now:
// <div id="divA">This text is different!</div>
Спецификации
| Спецификация |
|---|
| DOM # dom-node-textcontent |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
textContent |
1 | 12 | 1 | 9 | 3 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent