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

Очистка содержимого div по нажатию кнопки: JavaScript

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

Если вам необходимо удалить все содержимое элемента div:

JS
Скопировать код
// Как волшебство! Все исчезло!
document.getElementById('myDiv').innerHTML = '';

Содержимое элемента div с id myDiv исчезнет без следа. Обратите внимание, что при этом удалятся все обработчики событий, привязанные к дочерним элементам.

Кинга Идем в IT: пошаговый план для смены профессии

Очистка с помощью textContent или использование jQuery

Используйте свойство textContent, чтобы удалить только текст, не затрагивая при этом дочерние элементы и обработчики событий.

JS
Скопировать код
// Текст исчез, но обработчики событий остались
document.getElementById('myDiv').textContent = '';

Последователям jQuery придется по вкусу метод .empty():

JS
Скопировать код
// Магия jQuery. Все ушло. Готово.
$('#myDiv').empty();

Данный метод jQuery аккуратно удаляет содержимое, оставляя в целости обработчики событий и данные.

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

Представим div как контейнер, заполненный различными объектами (содержимым).

Markdown
Скопировать код
До: Коробка 📦 (🕹️🎮📱) – Div полон
Действие: Очищение! 💥

JavaScript код для выполнения этого волшебного действия:

JS
Скопировать код
// Престиж!
document.getElementById('box').innerHTML = '';
Markdown
Скопировать код
После: Коробка 📦 (🏳️) – Вуаля! Div пуст.

Все объекты исчезли, оставив пустой контейнер (div), готовый к заполнению новым содержимым.

Другие способы очистки div

Вузуальный мир JavaScript полон разнообразнейших способов очистки div. Рассмотрим некоторые из них.

Полное удаление с помощью цикла removeChild

Метод, который удаляет каждый дочерний элемент по очереди, включая их обработчики событий:

JS
Скопировать код
// В цикле, и все исчезает!
let div = document.getElementById('myDiv');
while (div.firstChild) {
    div.removeChild(div.firstChild);
}
Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Мастерство: Делегирование событий

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

JS
Скопировать код
// Мастерский ход, как единое звено для управления!
document.getElementById('parentDiv').addEventListener('click', function(event) {
    // Элемент для взаимодействия!
    let targetElement = event.target;

    // Здесь ваш код
});

Использование возможностей фронтенд-фреймворков

Когда вы работаете с React, Vue или Angular, избегайте прямого изменения DOM. Воспользуйтесь возможностями этих фреймворков для привязки данных и управления состоянием, чтобы предотвратить ошибки.

Дополнительные приемы работы с div

Веб-разработчик должен обладать широким арсеналом навыков. Ниже представлены несколько полезных советов:

  • Доступность: Следите за тем, чтобы ваш код был доступен для пользователей со скринридерами, используя атрибут aria-live.
  • Чистка: Отвязывайте обработчики событий и очищайте объекты, чтобы избежать утечек памяти.
  • Обновление содержимого: Научитесь извлекать и загружать новое содержимое после очистки, используя переиспользуемые функции.
  • UI элементы: При загрузке нового содержимого используйте индикаторы загрузки или анимации для улучшения интерактивности.

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

  1. innerHTML – Web APIs | MDN — Документация для манипуляции HTML-содержимым через innerHTML.
  2. Свойство innerHTML — Примеры использования innerHTML.
  3. textContent – Web APIs | MDN — Информация про textContent — альтернативу innerHTML.
  4. Изменение документа — Обучающий материал по модификации HTML-документов с помощью JavaScript.
  5. Метод removeChild — Инструкции по использованию removeChild для очистки содержимого.
  6. .empty() | Документация jQuery API — Руководство для поклонников jQuery.
  7. Метод createElement – Web APIs | MDN — Как создавать элементы для обновления содержимого в div.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Как можно удалить только текст внутри элемента div, не трогая дочерние элементы?
1 / 5