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

如何将数组值对应添加到class为.score的div元素的textContent中

问题分析与修复方案

嘿,我一眼就看出问题出在哪了!你这段代码里,在遍历每个.score元素的forEach循环内部,又嵌套了一个遍历整个nums数组的循环——这就导致每个元素都会被依次赋值成数组里的每一个值,等循环结束时,所有元素自然就只剩下数组的最后一个值(也就是28)了,完全不是你想要的一一对应效果。

下面给你两种简单的修复方案,都能实现第一个.score对应数组第一个值、第二个对应第二个值的需求:

方案一:利用forEach的索引参数

这是最简洁的写法,forEach的第二个参数会返回当前元素在集合中的索引,直接用它去匹配数组对应位置的值就行:

var nums = [15, 15, 14, 14, 13, 12, 12, 11, 11, 11, 28, 28];
function addValue() {
  var elements = document.querySelectorAll('.score');
  Array.from(elements).forEach((el, index) => {
    el.textContent = nums[index];
  });
}
addValue();

方案二:用普通for循环(逻辑更直观)

如果你觉得索引参数不太好理解,用普通的for循环也能达到同样的效果,逻辑更清晰:

var nums = [15, 15, 14, 14, 13, 12, 12, 11, 11, 11, 28, 28];
function addValue() {
  var elements = document.querySelectorAll('.score');
  for (let i = 0; i < elements.length; i++) {
    elements[i].textContent = nums[i];
  }
}
addValue();

小提醒

因为你明确说了有12个元素和12个值,所以这两种方案都能完美适配。如果以后遇到元素数量和数组长度不一致的情况,记得加个判断(比如if (nums[i])),避免出现undefined的情况哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:22:47