如何使用JavaScript DOM实现猜数字游戏的重启按钮
猜数字游戏重启按钮实现方案
要实现重启按钮的功能,核心是把游戏的所有状态和界面元素重置回初始状态,具体步骤如下:
1. 修正原代码的语法错误
原代码中有一处语法错误,需先修复:
// 错误写法 document.querySelector('.number'),style.width = '30rem' // 正确写法 document.querySelector('.number').style.width = '30rem'
2. 调整变量声明
原secretNumber用const声明无法重新赋值,需改成let:
let secretNumber = Math.trunc(Math.random() * 21);
3. 添加重启按钮的事件监听
假设你的重启按钮类名为.again,添加以下代码实现重置逻辑:
document.querySelector('.again').addEventListener('click', function() { // 重置随机数 secretNumber = Math.trunc(Math.random() * 21); // 重置分数 score = 20; document.querySelector('.score').textContent = score; // 重置提示文本 document.querySelector('.message').textContent = 'Start guessing...'; // 清空输入框 document.querySelector('.guess').value = ''; // 重置数字显示框 document.querySelector('.number').textContent = '?'; // 重置界面样式 document.querySelector('body').style.backgroundColor = '#222'; document.querySelector('.number').style.width = '15rem'; });
完整修改后的代码
let secretNumber = Math.trunc(Math.random() * 21); let score = 20; // 检查按钮逻辑 document.querySelector('.check').addEventListener('click', function () { const guess = Number(document.querySelector('.guess').value); // 无输入的情况 if (!guess) { document.querySelector('.message').textContent = '❌ No Number'; // 猜对的情况 } else if (guess === secretNumber) { document.querySelector('.message').textContent = '🎉 Correct Number ! '; document.querySelector('body').style.backgroundColor = '#60b347'; document.querySelector('.number').style.width = '30rem'; document.querySelector('.number').textContent = secretNumber; // 猜高了的情况 } else if (guess > secretNumber) { if (score > 1) { document.querySelector('.message').textContent = '📈 Too High!'; score--; document.querySelector('.score').textContent = score; } else { document.querySelector('.message').textContent = '🧨 You Lost The Game!'; document.querySelector('.score').textContent = 0; } // 猜低了的情况 } else if (guess < secretNumber) { if (score > 1) { document.querySelector('.message').textContent = '📉 Too Low!'; score--; document.querySelector('.score').textContent = score; } else { document.querySelector('.message').textContent = '🧨 You Lost The Game!'; document.querySelector('.score').textContent = 0; } } }); // 重启按钮逻辑 document.querySelector('.again').addEventListener('click', function() { secretNumber = Math.trunc(Math.random() * 21); score = 20; document.querySelector('.score').textContent = score; document.querySelector('.message').textContent = 'Start guessing...'; document.querySelector('.guess').value = ''; document.querySelector('.number').textContent = '?'; document.querySelector('body').style.backgroundColor = '#222'; document.querySelector('.number').style.width = '15rem'; });
注:如果你的重启按钮类名不是.again,请替换成HTML中实际的类名或选择器。
内容的提问来源于stack exchange,提问作者ahmad123dev
相关产品推荐
相关产品推荐

