javascript 帮我设置多个计时器

javascript Help me with multiple timers

https://jsfiddle.net/nfv02qg9/1/

我需要找到一种方法来替换所有包含单词 Hello! 的 div!带定时器。但是更多的 div 可能会出现,并且会发生相同的变量被重写的情况。我一直在循环寻找你好! innerHTML.indexOf

总结:我需要一个计时器来替换每次弹出的单词。屏幕上可能有 10 个,稍后可能会出现更多。有没有办法制作一个包含 UTC 时间的动态变量,使其独一无二?

var myClasses = document.getElementsByClassName("last-message fs_small");
  • ID 需要唯一,使用 class

let clocks;
const messages = document.getElementById("messages");
const fmt = time => {
  let clock = []
  const hh = ~~(time / 3600),
    mm = ~~((time % 3600) / 60),
    ss = ~~time % 60;
  if (hh) clock.push("" + hh.toString().padStart(2, "0")); // change to != null to always get hours
  if (mm != null) clock.push(mm.toString().padStart(2, "0"))
  if (ss != null) clock.push(ss.toString().padStart(2, "0"))
  return clock.join(":")
};

const scan = setInterval(function() {
  [...document.querySelectorAll('.message')].forEach(div => {
    if (div.textContent.includes("Hello!")) {
      div.innerHTML = `<div class="clock" data-sec="0">00:00</div>`;
    }
  });
  clocks = [...document.querySelectorAll(".message .clock")]; 
}, 2000)

const setTime = () => { 
  if (clocks && clocks.length) clocks.forEach(clock => {
    let time = +clock.dataset.sec;
    time++;
    clock.dataset.sec = time;
    clock.innerText = fmt(time); 
  });
}

setInterval(setTime, 1000);

// test: 
setInterval(function() {
  messages.innerHTML += `<div class="message">Hello!</div>`
}, 5000)
<div id="messages"></div>