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

如何在多个span中显示不同随机数?JavaScript问题求助

问题解决方案

核心问题

HTML中id是唯一标识符,document.getElementById()只会返回第一个匹配该id的元素,所以你后面三个<span id="yourNumber1">永远不会被赋值,自然显示空白。

修复步骤

  1. 修改HTML结构:将重复的id="yourNumber1"改为class="yourNumber1",class允许重复使用
  2. 调整JavaScript逻辑:遍历所有class为yourNumber1的元素,为每个元素生成独立的随机数

完整代码示例

修改后的HTML

(<span id="yourNumber"></span> user log)

(<span class="yourNumber1"></span> users logs)
(<span class="yourNumber1"></span> users logs)
(<span class="yourNumber1"></span> users logs)
(<span class="yourNumber1"></span> users logs)

修改后的JavaScript

var min = 50;
var originalMax = 150; // 保留原始max值,避免被修改后影响后续计算
var play1;

window.onload = function() {
  // 生成第一个随机数
  play1 = Math.floor(Math.random() * (originalMax - min + 1)) + min;
  document.getElementById("yourNumber").innerHTML = play1;

  // 计算play2的生成规则参数
  var play2Max, play2Min;
  if (play1 < 10) {
    play2Max = 10 - play1;
    play2Min = min;
  } else {
    play2Max = 10;
    play2Min = 1;
  }

  // 遍历所有yourNumber1元素,逐个生成随机数
  var numberElements = document.querySelectorAll(".yourNumber1");
  numberElements.forEach(function(element) {
    var play2 = Math.floor(Math.random() * (play2Max - play2Min + 1)) + play2Min;
    element.innerHTML = play2;
  });
}

关键说明

  • 用document.querySelectorAll(".yourNumber1")获取所有目标元素,返回可遍历的节点列表
  • 把原始max变量改名为originalMax,避免生成play1后修改max值影响后续play2的计算逻辑
  • 通过forEach循环为每个span单独生成随机数,确保每个数值独立

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:18:13