JavaScript HTML DOM Елементи (Вузли)
В цьому розділі йдеться про додавання і видалення вузлів (HTML елементів).
Створення нових HTML елементів (вузлів)
Щоб додати новий елемент до HTML DOM, ви повинні спочатку створити елемент (вузол елемента), а потім додати його до існуючого елемента.
Приклад
<div id="div1">
<p id="p1">Це параграф.</p>
<p id="p2">Це інший параграф.</p>
</div>
<script>
const para = document.createElement("p");
const node = document.createTextNode("This is new.");
para.appendChild(node);
const element = document.getElementById("div1");
element.appendChild(para);
</script>
Спробуйте самі »
Пояснення прикладу
В цьому коді створюється новий елемент <p>
:
const para = document.createElement("p");
Щоб додати текст до елемента <p>
, спочатку потрібно створити текстовий вузол. Цей код створює текстовий вузол:
const node = document.createTextNode("Це новий параграф.");
Потім ви повинні додати текстовий вузол до елемента <p>
:
para.appendChild(node);
Нарешті, ви повинні додати новий елемент до існуючого.
Цей код знаходить існуючий елемент:
const element = document.getElementById("div1");
Цей код додає новий елемент до існуючого:
element.appendChild(para);
Створення нових елементів HTML - insertBefore()
Метод appendChild()
у попередньому прикладі додав новий елемент як останній дочірній елемент батьківського.
Якщо ви цього не хочете, можете скористатися методом insertBefore()
:
Приклад
<div id="div1">
<p id="p1">Це параграф.</p>
<p id="p2">Це інший параграф.</p>
</div>
<script>
const para = document.createElement("p");
const node = document.createTextNode("Це новий.");
para.appendChild(node);
const element = document.getElementById("div1");
const child = document.getElementById("p1");
element.insertBefore(para, child);
</script>
Спробуйте самі »
Видалення наявних елементів HTML
Щоб видалити елемент HTML, скористайтеся методом remove()
:
Приклад
<div>
<p id="p1">Це параграф.</p>
<p id="p2">Це інший параграф.</p>
</div>
<script>
const elmnt = document.getElementById("p1"); elmnt.remove();
</script>
Спробуйте самі »
Пояснення прикладу
Документ HTML містить елемент <div>
із двома дочірніми вузлами (два елементи <p>
):
<div>
<p id="p1">Це параграф.</p>
<p id="p2">Це інший параграф.</p>
</div>
Знайдіть елемент, який потрібно видалити:
const elmnt = document.getElementById("p1");
Потім виконайте метод remove() для цього елемента:
elmnt.remove();
Метод remove()
не працює в старіших браузерах. Перегляньте наведений нижче приклад використання removeChild()
замість цього.
Видалення дочірнього вузла
Для браузерів, які не підтримують метод remove()
, потрібно знайти батьківський вузол, щоб видалити елемент:
Приклад
<div id="div1">
<p id="p1">Це параграф.</p>
<p id="p2">Це інший параграф.</p>
</div>
<script>
const parent = document.getElementById("div1");
const child = document.getElementById("p1");
parent.removeChild(child);
</script>
Спробуйте самі »
Пояснення прикладу
Цей документ HTML містить елемент <div>
із двома дочірніми вузлами (два елементи <p>
):
<div id="div1">
<p id="p1">Це параграф.</p>
<p id="p2">Це інший параграф.</p>
</div>
Знайдіть елемент з id="div1"
:
const parent = document.getElementById("div1");
Знайдіть елемент <p>
із id="p1"
:
const child = document.getElementById("p1");
Видалити дочірній елемент від батьків:
parent.removeChild(child);
Ось загальний обхідний шлях: знайдіть дочірній елемент, який потрібно видалити, і скористайтеся його властивістю parentNode
, щоб знайти батьківського:
const child = document.getElementById("p1");
child.parentNode.removeChild(child);
Заміна елементів HTML
Щоб замінити елемент у HTML DOM, скористайтеся методом replaceChild()
:
Приклад
<div id="div1">
<p id="p1">Це параграф.</p>
<p id="p2">Це інший параграф.</p>
</div>
<script>
const para = document.createElement("p");
const node = document.createTextNode("Це новий.");
para.appendChild(node);
const parent = document.getElementById("div1");
const child = document.getElementById("p1");
parent.replaceChild(para, child);
</script>
Спробуйте самі »