Spec-Zone.ru › Web APIs

Узел: свойство 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

См. также

  • HTMLElement.innerText
  • Element.innerHTML
  • Подробнее о различиях между innerText и textContent (статья в блоге)

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API