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

如何用JavaScript修改数组元素颜色?实现扑克牌红桃方块红色显示

问题2:让扑克牌红桃(♥)和方块(♦)显示为红色

针对你提供的代码,我们可以在生成花色后判断类型,给对应的DOM元素设置红色样式,同时修正原代码中的一处错误(Math.random()不需要传参数):

修改后的完整代码:

window.onload = function() {
  let generateRandomNumber = () => {
    let numbers = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"];
    let indexNumber = Math.floor(Math.random() * numbers.length);
    return numbers[indexNumber];
  };
  let generateRandomSuit = () => {
    let suits = ["♦", "♥", "♠", "♣"];
    // 修正:Math.random()不需要传参数,原代码的Math.random(suits)是错误的
    let indexSuit = Math.floor(Math.random() * suits.length);
    return suits[indexSuit];
  };
  document.querySelector("#number").innerHTML = generateRandomNumber();

  var allSuits = generateRandomSuit();
  const suitElements = [document.querySelector("#top"), document.querySelector("#bottom")];
  
  suitElements.forEach(el => {
    el.textContent = allSuits;
    // 判断是否为红桃或方块,设置红色
    if (allSuits === "♥" || allSuits === "♦") {
      el.style.color = "red";
    } else {
      el.style.color = "black";
    }
  });
};

如果更倾向于样式与逻辑分离,也可以用CSS类实现:

  1. 先定义CSS类:
.red-suit {
  color: red;
}
.black-suit {
  color: black;
}
  1. 修改JavaScript中的样式设置部分:
suitElements.forEach(el => {
  el.textContent = allSuits;
  el.className = allSuits === "♥" || allSuits === "♦" ? "red-suit" : "black-suit";
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:35:17