Intermediate
+50 XP

👋 Start learning JavaScript right now — for free!

📖

What is the DOM?

Understand how JavaScript interacts with an HTML page

🌳

DOM = HTML tree

Imagine an HTML page as a tree: there is a root (html), branches (head, body), leaves (p, div, button...). The DOM (Document Object Model) is how JavaScript 'sees' this tree and can modify it.

Як знайти елемент на сторінці

Є кілька способів вибрати елемент:

МетодЩо шукаєПовертає
getElementById('id')Елемент з конкретним idОдин елемент або null
querySelector('.class')Перший що підходить під CSS-селекторОдин елемент або null
querySelectorAll('p')Всі що підходятьNodeList (схожий на масив)

querySelector найгнучкіший — приймає будь-який CSS-селектор:

javascript
document.querySelector('#header')        // за id
document.querySelector('.btn-primary')   // за класом
document.querySelector('input[type=text]') // за атрибутом
javascript
💬

getElementById і querySelector — найчастіші методи. querySelectorAll повертає NodeList, не масив — але у нього є forEach.

Зміна вмісту елемента

javascript
const el = document.querySelector('h1');

// textContent — тільки текст (безпечно)
el.textContent = 'Новий заголовок';

// innerHTML — HTML-розмітка (обережно з XSS!)
el.innerHTML = '<span style="color:red">Червоний текст</span>';

// value — для полів вводу (<input>, <textarea>)
const input = document.querySelector('input');
console.log(input.value); // прочитати що ввів юзер
input.value = '';          // очистити поле

Коли що використовувати:

  • textContent — для звичайного тексту (назви, лічильники, повідомлення)
  • innerHTML — тільки якщо треба вставити HTML, і ти контролюєш вміст
  • value — для <input>, <textarea>, <select>
javascript
💬

classList — зручніший за style для CSS-змін. Одна функція toggle замінює if/else для перемикання.

Завжди перевіряй що елемент існує перед зверненням до нього: if (el) { el.textContent = '...'; }. Якщо елемент не знайдено — getElementById і querySelector повертають null, і наступний рядок кине TypeError.

Comments

Log In or Start to leave a comment.