所以我做了这段代码,当我点击检查按钮时,它每次都会改变消息的文本,这取决于猜测变量中输入的数字。
虽然我的逻辑声明变量在开始,然后使用他们似乎对我来说是好的,它不工作,有人能解释为什么我的逻辑是错误的吗?
// for example i declared
let message = document.querySelector('.message').textContent;
//and then i used message inside if to change the text
message = '‼ Type a Number';
为什么这是错的呢?
document.querySelector('.check').addEventListener('click', function () {
let score = 20;
const guess = Number(document.querySelector('.guess').value);
let message = document.querySelector('.message').textContent;
if (!guess) {
message = '‼ Type a Number';
} else if (secretNumber === guess) {
message = 'You Won 🥳';
} else if (secretNumber < guess) {
message = 'It is a lower Number!';
score += -1;
document.querySelector('.score').textContent = score;
} else if (secretNumber > guess) {
message = 'It is a higher Number!';
score += -1;
document.querySelector('.score').textContent = score;
}
});
1条答案
按热度按时间bvn4nwqk1#
您的问题(或者说我遇到的两个问题)是每次运行函数时都要重新定义
score
,也就是说,每次单击按钮时,score
都会被重置为20,并且只能根据用户的输入而采用20
或19
的值,另一个问题是您从未重新分配.message
元素的textContent
。要解决这个问题,只需将
score
的声明移出函数,并添加一个额外的消息重新分配行,如下所示:还要注意(正如Bravo所指出的),
+=
和-
的使用是重叠的--你应该只使用带减法的复合赋值运算符(即score -= 1
而不是score += -1
。这也适用于其他运算符,比如乘法*=
和除法/=
)。