JS метод Element.appendChild()


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

appendChild() дозволяє додавати вузол (елемент або текстовий вузол) як останнього дочірнього вузла іншого вузла. Цей метод широко використовується у веброзробці для маніпуляції з DOM (Document Object Model) та динамічного створення або модифікації структури веб-сторінки. Він забезпечує гнучкий та потужний спосіб керування вмістом веб-сторінок та додатків.

Метод appendChild() приймає один аргумент - вузол, який потрібно додати як дочірній. Якщо вузол, який додається, вже є частиною документа, він буде автоматично вилучений зі свого поточного місця та переміщений у нове місце. Ось простий приклад використання appendChild():

const newElement = document.createElement('div');
newElement.textContent = 'Новий елемент';

const container = document.querySelector('.container');
container.appendChild(newElement);

У цьому прикладі ми створюємо новий елемент div за допомогою document.createElement('div'), встановлюємо його текстовий вміст за допомогою textContent, знаходимо контейнер .container за допомогою document.querySelector('.container') та додаємо новий елемент як останнього дочірнього вузла контейнера за допомогою appendChild().

appendChild() також можна використовувати для переміщення існуючих вузлів у новому місці. Наприклад:

const existingElement = document.querySelector('.existing');
const newContainer = document.querySelector('.new-container');

newContainer.appendChild(existingElement);

У цьому прикладі ми знаходимо існуючий елемент .existing та новий контейнер .new-container, після чого переміщуємо існуючий елемент як останнього дочірнього вузла нового контейнера за допомогою appendChild().

appendChild() можна використовувати для створення складних ієрархічних структур DOM шляхом послідовного додавання дочірніх вузлів. Наприклад:

const ul = document.createElement('ul');

const li1 = document.createElement('li');
li1.textContent = 'Пункт 1';
ul.appendChild(li1);

const li2 = document.createElement('li');
li2.textContent = 'Пункт 2';
ul.appendChild(li2);

const container = document.querySelector('.container');
container.appendChild(ul);

У цьому прикладі ми створюємо невпорядкований список ul та два елементи списку li1 та li2. Спочатку ми додаємо li1 та li2 як дочірні вузли ul за допомогою appendChild(), а потім додаємо ul як дочірній вузол контейнера .container.

Важливо пам'ятати, що appendChild() додає вузол як останнього дочірнього вузла. Якщо потрібно вставити вузол у певне місце всередині батьківського вузла, можна використати метод insertBefore().

Підсумовуючи, appendChild() є потужним інструментом для маніпуляції з DOM у JavaScript. Він дозволяє динамічно створювати, змінювати та переміщувати вузли в структурі документа, що є ключовим для створення інтерактивних та адаптивних веб-додатків.

автор: Bond

Порада

Використовуйте appendChild() для створення складних ієрархічних структур DOM шляхом послідовного додавання дочірніх вузлів. Це може бути корисним для генерування динамічного вмісту, такого як меню, списки або дерева.

автор: Bond
Порада

Якщо вам потрібно вставити вузол у певне місце всередині батьківського вузла, а не в кінець, використовуйте метод insertBefore() замість appendChild(). Наприклад:

const newElement = document.createElement('div');
const container = document.querySelector('.container');
const firstChild = container.firstChild;

// Вставляємо newElement перед першим дочірнім вузлом контейнера
container.insertBefore(newElement, firstChild);
автор: Bond
Порада

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

const existingElement = document.querySelector('.existing');
const newContainer = document.querySelector('.new-container');

// existingElement буде вилучено зі свого поточного місця
newContainer.appendChild(existingElement);
автор: Bond

Синтаксис

appendChild(aChild)

Параметри

aChild

Вузол, який додається до вказаного батьківського вузла (зазвичай елемент).

автор: Bond

Повернення

node

Повертає вузол, який є доданим дочірнім вузлом (aChild), за винятком випадку, коли aChild є DocumentFragment, в такому випадку повертається пустий DocumentFragment.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1.1 7 12 5
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

+ запропонувати свій приклад у пісочниці

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

HTML

<div class="container">перший елемент container</div>
<div class="container">другий елемент container</div>

JS

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

// Знаходимо контейнер, до якого потрібно додати новий елемент
const container = document.querySelector('.container');

// Додаємо новий елемент як останнього дочірнього вузла контейнера
container.appendChild(newElement);
автор: Bond

У цьому прикладі ми використовуємо appendChild() для динамічного створення невпорядкованого списку на основі масиву елементів. Ми також демонструємо використання DocumentFragment для кращої продуктивності при додаванні багатьох вузлів.

HTML

<div class="container">перший елемент container</div>
<div class="container">другий елемент container</div>

JS

// Масив елементів для списку
const items = ['Елемент 1', 'Елемент 2', 'Елемент 3', 'Елемент 4', 'Елемент 5'];

// Створюємо DocumentFragment для тимчасового зберігання вузлів
const fragment = document.createDocumentFragment();

// Створюємо елементи списку та додаємо їх до DocumentFragment
items.forEach(item => {
  const li = document.createElement('li');
  li.textContent = item;
  fragment.appendChild(li);
});

// Знаходимо контейнер, до якого потрібно додати список
const container = document.querySelector('.container');

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

// Додаємо всі елементи списку з DocumentFragment до ul
ul.appendChild(fragment);

// Додаємо ul як останнього дочірнього вузла контейнера
container.appendChild(ul);
автор: Bond

У цьому прикладі ми демонструємо використання appendChild() для динамічного додавання елементів до невпорядкованого списку. Користувач може ввести текст у текстове поле та натиснути кнопку "Додати", щоб створити новий елемент списку.

Коли користувач натискає на кнопку "Додати", ми створюємо новий елемент li за допомогою document.createElement('li') та встановлюємо його текстовий вміст як значення, введене в текстове поле. Потім ми додаємо новий елемент li як останнього дочірнього вузла елемента ul за допомогою itemList.appendChild(newItem). Нарешті, ми очищуємо текстове поле, присвоюючи йому порожній рядок newItemInput.value = ''.

Користувач може продовжувати вводити нові елементи, і вони будуть динамічно додаватися до списку за допомогою appendChild(). Це демонструє, як appendChild() може бути використаний для динамічної модифікації структури DOM на основі взаємодії користувача.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід