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

JavaScript对错游戏分数更新问题:遍历类元素时全部变色而非对应题目

解决计分元素批量变色的问题

问题出在你遍历所有.score-elements元素时,每道题都把所有元素的颜色重新赋值了,导致所有元素同步变色。要只修改当前题对应的计分元素,试试下面的方法:

方法1:给计分元素加索引标识(推荐)

先给每个计分div加上data-index属性,对应题目序号(从0到9):

<div class="score-elements" data-index="0"></div>
<div class="score-elements" data-index="1"></div>
<!-- ... 直到第10个元素data-index="9" -->

然后在JS里记录当前是第几题(比如用currentQuestionIndex变量,初始为0,每答完一题加1),答题后直接定位到对应索引的元素修改颜色:

// 假设answerIsCorrect是判断答题对错的布尔值
const currentScoreElement = document.querySelector(`.score-elements[data-index="${currentQuestionIndex}"]`);
if (answerIsCorrect) {
  currentScoreElement.style.backgroundColor = 'green';
} else {
  currentScoreElement.style.backgroundColor = 'red';
}

方法2:直接通过元素集合索引定位

如果不想修改HTML,也可以直接获取所有计分元素的集合,通过当前题的索引直接访问对应元素:

const allScoreElements = document.querySelectorAll('.score-elements');
// currentQuestionIndex对应第几个元素(0对应第1题,1对应第2题...)
if (answerIsCorrect) {
  allScoreElements[currentQuestionIndex].style.backgroundColor = 'green';
} else {
  allScoreElements[currentQuestionIndex].style.backgroundColor = 'red';
}

核心逻辑就是:不要遍历所有计分元素,只定位当前题对应的那一个元素修改样式,这样就不会出现所有元素一起变色的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:42:19