我正在尝试创建一个应用程序,每次单击按钮都会创建一个新的秒表,它由一个 h1 和一个 div 元素组成:
const addButton = document.querySelector('.add-button')!;
addButton.addEventListener('click', createTimer);
function createTimer() {
var divTimer = document.createElement('div');
var divHeader = document.createElement('h1');
divHeader.textContent = 'Timer';
divTimer.textContent = '00:00:00';
document.body.appendChild(divHeader);
document.body.appendChild(divTimer);
}
但是,我想将上面按下按钮创建的每个秒表的 DOM 元素与一个秒表对象相关联。这个想法是每个秒表都应该有自己的秒、分、小时。
const testTimerDisplay = document.getElementById('timerA')!;
//Class based objects ES6
class Stopwatch {
seconds: number;
minutes: number;
hours: number;
constructor() {
this.seconds = 0;
this.minutes = 0;
this.hours = 0;
}
tick() {
setInterval(() => {
this.seconds++
testTimerDisplay.textContent = this.seconds.toString(); //NOT A GOOD IMPLEMENTATION
}, 1000)
}
}
const timerA = new Timer();
如您所见,当我调用tick() 时,它只会修改testTimerDisplay,这当然不是我最终想要的。有没有办法让我单击按钮并将新的秒表对象与它创建的 DOM 相关联?