В этом руководстве вы узнаете, как использовать свойство JavaScript textContent для получения текстового содержимого узла и его потомков.
Чтобы получить текстовое содержимое узла и его потомков, используйте свойство textContent :
let text = node.textContent;
Предположим, у вас есть следующий фрагмент HTML:
<div id="note">
JavaScript textContent Demo!
<span style="display:none">Hidden Text!</span>
<!-- my comment -->
</div>
В следующем примере свойство textContent используется для получения текста элемента <div> :
let note = document.getElementById('note');
console.log(note.textContent);Как это работает.
- Сначала выберите элемент
divс примечанием id с помощью методаgetElementById(). - Затем отобразите текст узла, обратившись к свойству
textContent.
Выход:
JavaScript textContent Demo! Hidden Text!
Как видно из вывода, свойство textContent возвращает конкатенацию textContent каждого дочернего узла, исключая комментарии (а также инструкции по обработке).
textContent против внутреннего innerText
С другой стороны, innerText учитывает стиль CSS и возвращает только удобочитаемый текст. Например:
let note = document.getElementById('note');
console.log(note.innerText);Выход:
JavaScript textContent Demo!
Как видите, скрытый текст и комментарии не возвращаются.
Так как свойство innerText использует обновленный CSS для вычисления текста, доступ к нему вызовет перекомпоновку, которая требует значительных вычислительных ресурсов.
Перекомпоновка происходит, когда веб-браузеру необходимо снова обработать и отрисовать часть или всю веб-страницу.
Установка
Помимо чтения textContent, вы также можете использовать свойство textContent для установки текста для узла:
node.textContent = newText;
Когда вы устанавливаете textContent для узла, все дочерние элементы узла будут удалены и заменены одним текстовым узлом со значением newText. Например:
let note = document.getElementById('note');
note.textContent = 'This is a note';Заключение
- Используйте свойство
textContent, чтобы вернуть конкатенациюtextContentкаждого дочернего узла. Вы можете использовать его, чтобы установить текст для узла. innerTextвозвращает удобочитаемый текст с учетом CSS.
