问题描述
在这里难住了。当我尝试调用 this.makeBoard();它给了我一个类型错误。任何帮助,将不胜感激。我没有包括我的其他方法,但是它们给出了相同的错误。
错误:类型错误:this.makeBoard 不是函数 在 HTMLInputElement
class Game {
constructor() {
this.init();
}
init() {
this.board = [];
this.currPlayer = 1;
this.button = document.querySelector("#submit");
this.button.addEventListener('click',function(e){
e.preventDefault();
const htmlBoard = document.querySelector('#board');
this.width = parseInt(document.querySelector('#width'));
this.height = parseInt(document.querySelector('#height'));
while (htmlBoard.firstChild) {
htmlBoard.removeChild(htmlBoard.firstChild)
}
this.makeBoard();
});
}
makeBoard() {
for (let y = 0; y < this.height; y++) {
this.board.push(Array.from({ length: this.width }));
}
}
}
new Game();
解决方法
document.querySelector()
返回元素对象而不是字符串。您可以使用 .innerText
在您的示例中,将 this.width
和 this.height
声明更改为。
this.width = parseInt(document.querySelector('#width').innerText)
this.height = parseInt(document.querySelector('#height').innerText)