JavaScriptDOM i zdarzenia

Node.textContent

Odczytuje lub ustawia cały tekst elementu, bez znaczników HTML.

Zwraca
Napis z tekstem elementu i wszystkich jego potomków.
Na tej stronie

Przykład

#
JavaScript
const welcome = document.querySelector('#welcome')

console.log(welcome.textContent)
console.log(welcome.children.length)

welcome.textContent = 'Wszystkie zadania ukończone!'
console.log(welcome.children.length)
Konsola
Witaj, Ania! Masz 3 nowe zadania.
2
0

Definicja i zastosowanie

#

Właściwość textContent zwraca tekst elementu razem z tekstem wszystkich elementów zagnieżdżonych, połączony w jeden napis. Znaczniki HTML są pomijane i zostaje sama treść, łącznie ze spacjami i znakami nowej linii z kodu HTML.

Przypisanie do textContent usuwa całą zawartość elementu i wstawia w jej miejsce jeden węzeł tekstowy. Tekst jest wstawiany dosłownie: znaki < i > nie tworzą znaczników, tylko pojawiają się na ekranie. Dzięki temu to bezpieczny sposób na wyświetlanie danych od użytkownika.

Podobna właściwość innerText bierze pod uwagę style: pomija ukryte elementy i odwzorowuje podział na linie widoczny na ekranie. Jest jednak wolniejsza, bo wymaga obliczenia układu strony. Do zwykłego ustawiania tekstu wybieraj textContent.

Składnia

#
Składnia
const text = element.textContent
element.textContent = newText

Więcej przykładów

#
Tekst wstawiany dosłownie
JavaScript
const comment = document.querySelector('#comment')

comment.textContent = 'Użyj znacznika <strong>, żeby pogrubić tekst'

console.log(comment.children.length)
console.log(comment.innerHTML)
Konsola
0
Użyj znacznika &lt;strong&gt;, żeby pogrubić tekst
Białe znaki z kodu HTML
JavaScript
const skills = document.querySelector('#skills')

console.log(JSON.stringify(skills.textContent))
console.log(skills.textContent.trim().split(/\s+/))
Konsola
"\n HTML\n CSS\n"
['HTML', 'CSS']

Wcięcia i znaki nowej linii z kodu HTML też są tekstem, więc trafiają do textContent. JSON.stringify() pokazuje je jako \n i spacje, a trim() usuwa je z początku i końca.

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Do wyświetlania tekstu od użytkownika używaj textContent, a nie innerHTML. Chroni to przed wstrzyknięciem kodu (atakiem XSS).
  • Odczytany tekst może zawierać spacje i znaki nowej linii z kodu HTML. W razie potrzeby oczyść go przez trim().
  • Przypisanie element.textContent = "" to szybki sposób na wyczyszczenie elementu.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.