Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.10.2022, 22:35
Новичок на форуме
Отправить личное сообщение для Trulala Посмотреть профиль Найти все сообщения от Trulala
 
Регистрация: 20.12.2015
Сообщений: 7

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

Если я нажму чекбокс на странице, то значение 7000 поменяется на 7500. Как мне отследить изменение числа и прибавить к 7500+2500 чтобы отображалось 10000?
Ответить с цитированием
  #2 (permalink)  
Старый 22.10.2022, 23:11
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Способы есть, но если это твой сайт и твой код, то ни за чем следить не надо, надо найти место в коде, которое и изменяет это число и доработать функционал именно там.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2022, 23:41
Новичок на форуме
Отправить личное сообщение для Trulala Посмотреть профиль Найти все сообщения от Trulala
 
Регистрация: 20.12.2015
Сообщений: 7

Сообщение от Aetae Посмотреть сообщение
Способы есть, но если это твой сайт и твой код, то ни за чем следить не надо, надо найти место в коде, которое и изменяет это число и доработать функционал именно там.
Сайт не мой. Я встраиваю скрипт в страницу в своем браузере.
Ответить с цитированием
  #4 (permalink)  
Старый 23.10.2022, 01:39
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

С гарантией - проверкой по таймеру:
;(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,
});
__________________
29375, 35

Последний раз редактировалось Aetae, 23.10.2022 в 01:56.
Ответить с цитированием
  #5 (permalink)  
Старый 23.10.2022, 08:46
Новичок на форуме
Отправить личное сообщение для Trulala Посмотреть профиль Найти все сообщения от Trulala
 
Регистрация: 20.12.2015
Сообщений: 7

Спасибо за помощь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как с помощью скрипта высчитать ширину полосы прокрутки? LADYX Элементы интерфейса 35 13.11.2017 12:50
изменение текста в элементе gazman jQuery 3 09.08.2017 14:16
как отследить изменение вложенных узлов JHUS Events/DOM/Window 3 16.10.2014 23:31
Как отследить изменение radio? housewm Events/DOM/Window 26 09.01.2014 03:03
Изменение цвета текста кнопки и цвета кнопки при нажатии Setta jQuery 22 31.07.2013 17:48