Учебник по JS

ГЛАВНАЯ JS Введение JS Куда Вывод JS Заявления JS JS-синтаксис JS-комментарии JS-переменные JS Пусть Константа JS JS-операторы JS-арифметика Назначение JS JS-типы данных JS-функции JS-объекты JS-события JS-строки Строковые методы JS Поиск строки JS Шаблоны строк JS JS-номера Методы номеров JS JS-массивы Методы массива JS Сортировка массива JS Итерация массива JS Константа массива JS JS-даты Форматы даты JS Методы получения даты JS Методы установки даты JS JS-математика JS Случайный JS Булевы значения Сравнение JS JS-условия JS-переключатель JS цикл для Цикл JS для входа Цикл JS для Цикл JS во время Перерыв JS JS-итерации JS-наборы JS-карты JS Typeof Преобразование типов JS JS побитовый JS регулярное выражение JS-ошибки Область JS JS-подъем Строгий режим JS JS это ключевое слово Функция стрелки JS JS-классы JS JSON JS-отладка Руководство по стилю JS Лучшие практики JS JS-ошибки JS-производительность Зарезервированные слова JS

JS-версии

JS-версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/пограничный История JS

JS-объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Средства доступа к объектам Конструкторы объектов Прототипы объектов Итерации объектов Наборы объектов Карты объектов Ссылка на объект

JS-функции

Определения функций Параметры функции Вызов функции Вызов функции Функция Применить Закрытие функций

JS-классы

Введение в класс Наследование классов Статический класс

JS асинхронный

Обратные вызовы JS JS асинхронный JS-обещания JS асинхронный/ожидание

JS HTML DOM

Дом Введение DOM-методы Документ DOM DOM-элементы DOM HTML DOM-формы ДОМ CSS DOM-анимации События ДОМ Слушатель событий DOM DOM-навигация DOM-узлы Коллекции DOM Списки узлов DOM

Спецификация браузера JS

JS-окно JS-экран Местоположение JS История JS JS-навигатор Всплывающее оповещение JS JS Тайминг JS-куки

JS-веб-API

Введение в веб-API API веб-форм API истории веб-поиска API веб-хранилища API веб-работника API веб-выборки API веб-геолокации

JS АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

JS JSON

Введение в JSON Синтаксис JSON JSON против XML Типы данных JSON Анализ JSON Строковая JSON JSON-объекты JSON-массивы JSON-сервер JSON PHP JSON HTML JSON JSONP

JS против JQuery

Селекторы jQuery JQuery HTML jQuery CSS JQuery DOM

JS-графика

JS-графика JS Холст JS сюжет JS Chart.js JS Google Диаграмма JS D3.js

JS-примеры

JS-примеры JS HTML DOM JS HTML-ввод HTML-объекты JS HTML-события JS JS-браузер JS-редактор JS-упражнения JS-викторина JS-сертификат

JS-ссылки

Объекты JavaScript HTML DOM-объекты


Элементы JavaScript HTML DOM (узлы)


Добавление и удаление узлов (элементов HTML)


Создание новых элементов HTML (узлов)

Чтобы добавить новый элемент в HTML DOM, вы должны сначала создать элемент (узел элемента), а затем добавить его к существующему элементу.

 Пример

<div id="div1">
  <p id="p1">This is a paragraph.</p>
  <p id="p2">This is another paragraph.</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("This is a new paragraph.");

Затем вы должны добавить текстовый узел к <p>элементу:

para.appendChild(node);

Наконец, вы должны добавить новый элемент к существующему элементу.

Этот код находит существующий элемент:

const element = document.getElementById("div1");

Этот код добавляет новый элемент к существующему элементу:

element.appendChild(para);


Создание новых HTML-элементов — insertBefore()

Метод appendChild()в предыдущем примере добавил новый элемент в качестве последнего дочернего элемента родителя.

Если вы не хотите этого, вы можете использовать insertBefore()метод:

Пример

<div id="div1">
  <p id="p1">This is a paragraph.</p>
  <p id="p2">This is another paragraph.</p>
</div>

<script>
const para = document.createElement("p");
const node = document.createTextNode("This is new.");
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">This is a paragraph.</p>
  <p id="p2">This is another paragraph.</p>
</div>

<script>
const elmnt = document.getElementById("p1"); elmnt.remove();
</script>

Объяснение примера 

Документ HTML содержит <div>элемент с двумя дочерними узлами (два <p> элемента):

<div>
  <p id="p1">This is a paragraph.</p>
  <p id="p2">This is another paragraph.</p>
</div>

Найдите элемент, который хотите удалить:

const elmnt = document.getElementById("p1");

Затем выполните метод remove() для этого элемента:

elmnt.remove();

Этот remove()метод не работает в старых браузерах, смотрите пример ниже, как его использовать removeChild().


Удаление дочернего узла

Для браузеров, которые не поддерживают этот remove()метод, вам нужно найти родительский узел, чтобы удалить элемент:

Пример

<div id="div1">
  <p id="p1">This is a paragraph.</p>
  <p id="p2">This is another paragraph.</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">This is a paragraph.</p>
  <p id="p2">This is another paragraph.</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">This is a paragraph.</p>
  <p id="p2">This is another paragraph.</p>
</div>

<script>
const para = document.createElement("p");
const node = document.createTextNode("This is new.");
para.appendChild(node);

const parent = document.getElementById("div1");
const child = document.getElementById("p1");
parent.replaceChild(para, child);
</script>