You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:06:18