Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Отследить изменение текста в элементе (https://javascript.ru/forum/events/84591-otsledit-izmenenie-teksta-v-ehlemente.html)

Trulala 22.10.2022 22:35

Отследить изменение текста в элементе
 
Здравствуйте. На странице есть элемент
<div class="case-builder-total">7000</div>

Если я нажму чекбокс на странице, то значение 7000 поменяется на 7500. Как мне отследить изменение числа и прибавить к 7500+2500 чтобы отображалось 10000?

Aetae 22.10.2022 23:11

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

Trulala 22.10.2022 23:41

Цитата:

Сообщение от Aetae (Сообщение 548541)
Способы есть, но если это твой сайт и твой код, то ни за чем следить не надо, надо найти место в коде, которое и изменяет это число и доработать функционал именно там.

Сайт не мой. Я встраиваю скрипт в страницу в своем браузере.

Aetae 23.10.2022 01:39

С гарантией - проверкой по таймеру:
;(function repeat(previousValue) {
  const target = document.querySelector('.case-builder-total');
  const value = +element?.textConent;

  if (previousValue === 7000 && value === 7500) {
    target.textConent = value + 2500;
    return; // останавливаем таймер
  }

  setTimeout(repeat, 100, value);
}());

Можно с помощью наблюдателя, если сам div не меняется:
const target = document.querySelector('.case-builder-total');

new MutationObserver(([{oldValue}], observer) => {
  const previousValue = +oldValue;
  const value = +target.textContent;

  if (previousValue === 7000 && value === 7500) {
    target.textContent = value + 2500;
    observer.disconnect(); // останавливаем наблюдение
  }
}).observe(target, {
  characterData: true,
  characterDataOldValue: true,
});

Trulala 23.10.2022 08:46

Спасибо за помощь.


Часовой пояс GMT +3, время: 08:33.