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

计时测验应用JS值无法渲染到HTML 答题对错样式不生效

核心故障原因

你遇到的两个问题都是代码逻辑不匹配导致的,不存在文件关联问题:

  • 题目、分数不渲染:混用jQuery对象和原生DOM API。你用$()拿到的是jQuery包装对象,不是原生DOM节点,直接调用原生的innerHTML/innerText/addEventListener/dataset属性/方法全部失效,DOM自然不会更新。
  • 对错样式不触发:存在两处逻辑错误:
    1. 答案判断逻辑不匹配:你存储的正确答案currentQuestion.answer是选项文本(比如all of the above),但判断时取的selectedAnswer是选项的data-number序号值(1/2/3/4),两者永远不可能相等,永远判定为答错。
    2. 类名不匹配:CSS里定义错误状态类是.wrong,但JS逻辑里给错误选项加的类名是incorrect,类名对应不上,样式无法生效。
逐点修复方案

直接替换对应代码段即可:

  1. 替换开头的DOM获取代码,统一用原生DOM API(和你后续写的操作逻辑匹配,不用全量改写为jQuery写法)
// 注释掉原jQuery获取方式,换成原生DOM获取
// const question = $('#question');
// const choices = Array.from($('.choice-text'));
// const scoreText = $('#score');
const question = document.getElementById('question');
const choices = Array.from(document.querySelectorAll('.choice-text'));
const scoreText = document.getElementById('score');
  1. 修正选项点击逻辑里的答案判断、类名赋值部分
choices.forEach(choice => {
choice.addEventListener('click', e => {
    if (!acceptingAnswers) return

    acceptingAnswers = false
    const selectedChoice = e.target
    // 原逻辑取选项序号,改为取选中项的文本和正确答案比对
    const selectedAnswer = selectedChoice.innerText.trim()
    // 错误类名和CSS对齐为wrong,不要使用不存在的incorrect类
    let classToApply = selectedAnswer === currentQuestion.answer.trim() ? 'correct' : 'wrong'
    
    if (classToApply === 'correct') {
        incrementScore(SCORE_POINTS)
    }

    selectedChoice.parentElement.classList.add(classToApply)

    setTimeout(() => {
        selectedChoice.parentElement.classList.remove(classToApply)
        getNewQuestion();
    }, 1000)
  })
});
  1. (可选优化)修正题目边界判断逻辑,你当前设置MAX_QUESTIONS = 10但示例里只放了2道题,原判断会在题目耗尽后直接跳end.html,补全剩余8道题后该逻辑可正常工作,不用额外修改。
修复后预期效果
  • 页面加载后自动随机抽取题库题目,题干、四个选项文本正常渲染
  • 选对选项时,选项容器显示绿色正确样式,分数加100,1秒后切换下一题
  • 选错选项时,选项容器显示红色错误样式,1秒后切换下一题
  • 所有题目答完后自动跳转至end.html,最终分数存入localStorage

内容的提问来源于stack exchange,提问作者dhuw

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:24:22