Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Вставка HTML-элементов через строку в JavaScript: гайд

Быстрый ответ

Мгновенное добавление HTML-элемента с использованием JavaScript может быть выполнено так:

JS
Скопировать код
// Создаем элемент <div> с текстом "Привет, мир!" и помещаем его в body
document.body.appendChild(Object.assign(document.createElement('div'), {textContent: 'Привет, мир!'}));

Для массового добавления элементов использование фрагментов документа является более эффективным:

JS
Скопировать код
// Создаем фрагмент документа – это контейнер для элементов
const fragment = document.createDocumentFragment();
fragment.appendChild(document.createElement('p')); // VIP-секция
fragment.appendChild(document.createElement('section')); // Зона питания
document.body.appendChild(fragment); // Вот и готов наш большой зал!
Кинга Идем в IT: пошаговый план для смены профессии

Углубленные методы вставки контента

Работа с фрагментами документа

Для добавления нескольких элементов используйте фрагменты документа, чтобы предотвратить ненужные перерисовки страницы:

JS
Скопировать код
let fragment = new DocumentFragment(); // Создаем фрагмент для заготовок
fragment.appendChild(document.createElement('ul')); // Покупки
// Добавляем в фрагмент другие элементы
document.getElementById('target').appendChild(fragment); // Все выполнено!
Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Вставка чистого HTML-кода с insertAdjacentHTML

Когда вам требуется вставить необработанный HTML-код напрямую, используйте insertAdjacentHTML:

JS
Скопировать код
document.getElementById('target').insertAdjacentHTML('beforeend', '<span>Новый контент</span>'); // Очень удобно!

Клонирование и настройка шаблонных элементов

Чтобы облегчить процесс, можно склонировать существующие элементы, настроить их и добавить в документ:

JS
Скопировать код
let template = document.getElementById('template').cloneNode(true); // Получаем клон элемента
template.id = 'newId'; // Назначаем новый идентификатор для поддержания уникальности
document.body.appendChild(template); // Добро пожаловать в клуб!

Визуализация

Концептуальное представление процесса добавления HTML-элементов при помощи JavaScript:

Представьте каждый HTML-элемент как строительный блок 🏗️.

С JavaScript вы можете:

JS
Скопировать код
let newFloor = document.createElement('div'); // 🏗️ Создаем новый блок – этаж
newFloor.innerHTML = 'Новый этаж'; // Эскизируем план этажа
document.body.appendChild(newFloor); // Добавляем этаж, отмечаем это событие!

Результат:

До: Здание (body) 🏢 🏢

После: Здание с новым этажом (body) 🏢 🏢 🏗️ <-- Взмах флагом! Отметим расширение территории!

Ваш сайт развивается, также как модульная конструкция, элемент за элементом!

Точное размещение элементов с insertAdjacentHTML

Метод insertAdjacentHTML() позволяет вставлять элементы с хирургической точностью:

  1. 'beforebegin': Перед самим элементом. Будьте всегда на шаг впереди!
  2. 'afterbegin': В начале внутреннего содержимого элемента. Захватывайте лидирующие позиции!
  3. 'beforeend': В конце внутреннего содержимого элемента. Заботьтесь о запасных позициях!
  4. 'afterend': После самого элемента. Это ваш последний шанс для действия!

Пример:

JS
Скопировать код
// Вставляем контент перед элементом, словно обходя очередь в кафе
targetElement.insertAdjacentHTML('beforebegin', '<p>Параграф добавлен перед элементом</p>');

// Обгоняем. Вставляем контент сразу после элемента
targetElement.insertAdjacentHTML('afterend', '<footer>Новый футер</footer>');

Управление шаблонами в скрытом DIV-блоке

Для более эффективного использования шаблонов, размещайте их внутри скрытого div. Это повысит производительность и исключит повторения:

JS
Скопировать код
let templateDiv = document.getElementById('hiddenTemplateDiv'); // Обращаемся к контейнеру шаблона
let nodeToClone = templateDiv.firstElementChild; // Берем первый элемент
let clonedNode = nodeToClone.cloneNode(true); // Клонируем его
clonedNode.id = 'newUniqueID'; // Присваиваем уникальный идентификатор
document.body.appendChild(clonedNode); // Представляем клонированный объект!

Чуткое создание элементов таблицы

При создании элементов таблицы потребуется особое внимание:

JS
Скопировать код
let table = document.createElement('table'); // Торжественно готовим стол
let tbody = table.createTBody(); // Пришло время для "сердца" стола
let row = tbody.insertRow(); // Добавляем строку для разнообразия
let cell = row.insertCell(); // Заполняем ячейку
cell.textContent = 'Текст ячейки'; // Устанавливаем содержимое
document.body.appendChild(table); // Стол к банкету готов!

Полезные материалы

  1. Document: createElement() method – Web APIs | MDN – Изучите искусство создания элементов.
  2. HTML DOM Document createElement() MethodПодробное руководство по методу createElement().
  3. Modifying the document – Станьте мастером манипулирования документами.
  4. Element: insertAdjacentHTML() method – Web APIs | MDN – Обретите абсолютный контроль над размещением элементов.
  5. Node: appendChild() method – Web APIs | MDNАлфавит присоединения узлов в DOM.
  6. JavaScript DOM HTML – Освойте тайны работы с HTML через innerHTML и другие свойства.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Как можно эффективно добавить несколько HTML-элементов в документ с помощью JavaScript?
1 / 5