typescript - 使用 Typescript 操作 DOM
问题描述
我正在尝试构建一个具有递增、递减和重置功能的基本计数器应用程序;但是,我的 TS 代码有一些问题。我遇到的问题既不是 querySelector 也不是 getElementByID 识别我的 HTML DOM 元素。
在下面的代码中,我专门将我的元素转换为“HTMLElements”,但它对我的代码没有多大作用。
class Counter {
constructor(protected counterValue: number, protected hadErrored: boolean, protected errorMessage: string) {
console.log("CONSTRUCTOR CALLED!");
}
getCounterValue() {
return this.counterValue;
}
incrementCounter () {
this.counterValue += 1;
this.hadErrored = false;
return this.counterValue;
}
decrementCounter () {
if (this.counterValue <= 0) {
this.hadErrored = true;
return this.errorMessage;
} else {
this.counterValue -= 1;
return "Decreased counter value: " + this.counterValue;
}
}
resetCounter() {
this.counterValue = 0;
this.hadErrored = false;
}
}
class DOMManipulation extends Counter {
constructor (private counter: HTMLBodyElement, private increment: HTMLButtonElement, private decrement: HTMLButtonElement, private reset: HTMLButtonElement) {
super(0, false, "Counter can't be less than 0")
}
}
const counter = new Counter(0, false, "Counter can't be less than 0");
const incrementButton = document.getElementById("#increment") as HTMLButtonElement;
const decrementButton = document.getElementById("#decrement") as HTMLButtonElement;
const resetButton = document.getElementById("#reset") as HTMLButtonElement;
const counterValue = document.getElementById("#counter") as HTMLDivElement;
console.log(incrementButton) // This is returning null
console.log(incrementButton instanceof HTMLButtonElement) // This is returning false
counterValue.innerText = counter.getCounterValue.toString(); // Uncaught TypeError: Cannot set properties of null (setting 'innerText')
incrementButton.addEventListener("click", counter.incrementCounter);
decrementButton.addEventListener("click", counter.decrementCounter);
resetButton.addEventListener("click", counter.resetCounter);
任何形式的帮助将不胜感激。
亲切的问候。
解决方案
推荐阅读
- python - 如何让机器人将所有成员移动到另一个语音频道
- spring-kafka - 在 kafka producer 回调中添加 trace_id
- r - 使用 R(逻辑回归)对分类图提出问题
- loops - 如何计算具有相似开头的数组中的行数并在新数组中插入计数器?
- scala - 如何将数据帧作为流上传而不保存在磁盘上?
- entity-framework - 具有自引用数据结构的树视图 UI 关系(分层[父-子] 关系)
- java - 为什么未来 .isDone() 必须在 executorService.shutdown() 之后
- reactjs - react中的动态css类
- java - 想要列出内部存储和外部存储上的所有音乐文件,但无法在 Android 10 上完成
- sql - 带删除的内连接