Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS властивість Element.parentNode

Загальний опис

Властивість parentNode вузла Node представляє батьківський вузол для цього вузла в дереві DOM. Вона повертає безпосереднього батьківського вузла або null, якщо вузол не має батьківського вузла (наприклад, для вузла document). Ця властивість є корисною для навігації та маніпуляції деревом DOM, а також для отримання доступу до батьківських елементів вузла.

Розглянемо простий приклад використання parentNode:

<div id="parent">
  <p id="child">Це дочірній вузол</p>
</div>
const childNode = document.getElementById('child');
const parentNode = childNode.parentNode;
console.log(parentNode.id); // "parent"

У цьому прикладі ми спочатку отримуємо вузол <p> за його id. Потім ми використовуємо parentNode, щоб отримати батьківський вузол <div>. Нарешті, ми виводимо id батьківського вузла в консоль.

Властивість parentNode часто використовується в комбінації з іншими властивостями та методами DOM для навігації та маніпуляції деревом. Наприклад, ми можемо видалити вузол зі структури DOM за допомогою parentNode та методу removeChild():

const childNode = document.getElementById('child');
const parentNode = childNode.parentNode;
parentNode.removeChild(childNode);

Тут ми спочатку отримуємо дочірній та батьківський вузли. Потім ми використовуємо removeChild() на батьківському вузлі, передаючи дочірній вузол як аргумент, щоб видалити його з DOM.

Властивість parentNode також корисна для обходу дерева DOM. Наприклад, ми можемо отримати всіх батьківських вузлів для заданого вузла за допомогою циклу:

function getParents(node) {
  const parents = [];
  let currentNode = node;

  while (currentNode.parentNode) {
    parents.unshift(currentNode.parentNode);
    currentNode = currentNode.parentNode;
  }

  return parents;
}

const childNode = document.getElementById('child');
const parentNodes = getParents(childNode);
console.log(parentNodes); // Масив батьківських вузлів

У цьому прикладі функція getParents приймає вузол і повертає масив його батьківських вузлів, починаючи з найближчого батьківського вузла. Ми використовуємо цикл while для обходу батьківських вузлів, доки не досягнемо кореневого вузла document (який не має parentNode).

Властивість parentNode є невід'ємною частиною роботи з DOM в JavaScript. Вона дозволяє отримувати доступ до батьківських вузлів, навігувати по дереву DOM, видаляти або вставляти вузли, а також виконувати різноманітні маніпуляції з деревом DOM. Ця властивість є однією з основних для розуміння та роботи зі структурою DOM в JavaScript.

Порада:

Використовуйте parentNode для обходу дерева DOM. Ви можете отримати всіх батьківських вузлів для заданого вузла за допомогою циклу та властивості parentNode. Це корисно для різноманітних завдань, таких як пошук певного елемента в ієрархії або виконання операцій на всіх батьківських вузлах.

Порада:

Якщо ви плануєте видалити вузол з DOM, використовуйте parentNode разом з методом removeChild(). Спочатку отримайте батьківський вузол за допомогою parentNode, а потім викличте removeChild() на батьківському вузлі, передаючи дочірній вузол як аргумент.

const childNode = document.getElementById('child');
const parentNode = childNode.parentNode;
parentNode.removeChild(childNode);
Порада:

Під час роботи з вузлами, які можуть бути перенесені між документами, використовуйте parentNode для перевірки належності вузла до поточного документа. Якщо parentNode вузла дорівнює null, це означає, що вузол не належить до поточного документа, і ви повинні обережно поводитися з ним.

function processNode(node) {
  if (node.parentNode === null) {
    console.warn('Вузол не належить до поточного документа');
    return;
  }
  // Виконайте операції з вузлом
}

Ця порада допоможе уникнути помилок при маніпуляціях з вузлами, які можуть бути перенесені між документами або видалені з DOM.

Синтаксис

Element.parentNode

Значення

Return

Переглядачі

Переглядач

1

1

1.1

7

12

Переглядач

4.4

18

4

1

Переглядач

-

-

Приклади


У цьому прикладі створено контейнер div з вкладеним елементом p, який містить текст та дочірній елемент span. Є дві кнопки: одна для показу parentNode для елемента span, а інша - для зміни тексту parentNode для елемента p.

При натисканні на кнопку "Показати parentNode" викликається функція showParentNode(), яка отримує parentNode для елемента span (тобто елемент p) та виводить повідомлення в елемент <p> з ідентифікатором output, вказуючи тег батьківського вузла.

При натисканні на кнопку "Змінити текст parentNode" викликається функція changeParentNodeText(), яка отримує parentNode для елемента p (тобто елемент div) та змінює його текст на "Новий текст батьківського вузла".

Цей приклад демонструє, як можна отримувати parentNode для будь-якого вузла та маніпулювати його властивостями

У цьому прикладі ми створюємо новий елемент div та новий елемент p. Потім ми додаємо елемент p як дочірній елемент до елемента div за допомогою методу appendChild(). Після цього ми отримуємо parentNode для елемента p, який повинен бути елементом div. Нарешті, ми перевіряємо, чи дійсно parentNode елемента p є тим самим елементом div, що ми створили раніше, і виводимо результат у консоль.

// Створюємо новий елемент div
const newDiv = document.createElement('div');

// Створюємо новий елемент p
const newP = document.createElement('p');
newP.textContent = 'Це новий елемент p';

// Додаємо елемент p до елемента div
newDiv.appendChild(newP);

// Отримуємо parentNode для елемента p
const parentNode = newP.parentNode;

// Виводимо parentNode у консоль
console.log(parentNode === newDiv); // Вивід: true

У цьому прикладі ми створюємо новий елемент div, новий елемент span та новий елемент p. Потім ми додаємо елемент span як дочірній елемент до елемента p, а елемент p - як дочірній елемент до елемента div. Після цього ми отримуємо parentNode для елемента span, який повинен бути елементом p. Нарешті, ми змінюємо текст елемента parentNode (тобто елемента p), використовуючи його властивість textContent.

// Створюємо новий елемент div
const newDiv = document.createElement('div');

// Створюємо новий елемент span
const newSpan = document.createElement('span');
newSpan.textContent = 'Це новий елемент span';

// Створюємо новий елемент p
const newP = document.createElement('p');
newP.textContent = 'Це новий елемент p';

// Додаємо елемент span до елемента p
newP.appendChild(newSpan);

// Додаємо елемент p до елемента div
newDiv.appendChild(newP);

// Отримуємо parentNode для елемента span
const parentNode = newSpan.parentNode;

// Змінюємо текст елемента parentNode
parentNode.textContent = 'Змінений текст елемента p';