mirniycruxix
@mirniycruxix

Как при появлении элемента с определенным содержанием что-нибудь выполнить?

Всем привет.

У меня на странице есть такой блок : <div class="coolUpdates"></div>. По скрипту в этом блоке (не важно, стоит у него display: block; или display: none;) появляются другие блоки с одинаковыми классами, но в них отличается одно - текст. Например :
<div class="coolUpdates">
    // Начинаются появляться элементы
    <div class="omgUpdate">Обновление : добавили белый цвет</div>
    // Через некоторое время добавился еще один элемент
    <div class="omgUpdate">Обновление : добавили черный цвет</div>
</div>

Так вот, как мне сделать так, что при появлении <div class="omgUpdate"> содержащим текст Обновление : добавили черный цвет я смог бы выполнить какие-нибудь действия : например, вызвать alert('Обновление с черным цветом уже вышло!')?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
можно использовать mutationObserver() – наблюдатель, который будет следить за изменением списка дочерних элементов и что-то выполнять при любом обновлении.

const el = document.querySelector('.coolUpdates');

const observer = new MutationObserver(list => {
  list.forEach(mutation => {
    mutation.addedNodes.forEach(node => {
      if (node.textContent === 'Обновление : добавили черный цвет') {
        console.log('Оп! Момент настал!');
      }
    })
  });
});

observer.observe(el, { childList: true });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы