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

如何确保设置的下一个背景色不与上一次使用的重复?

解决相邻.sus元素背景色不重复的问题

首先注意:你的HTML代码存在ID重复的问题——HTML规范要求页面中每个元素的id必须唯一,多个元素共用同一个id会导致DOM选择器行为异常,也不符合标准,所以先修正这一点,移除重复的id="change"属性。

修正后的HTML代码

<div class="sus"></div>
<div class="sus"></div>
<div class="sus"></div>
<div class="sus"></div>
<div class="sus"></div>
<div class="sus"></div>

修改后的JavaScript代码

const colores = ["#7579CD", "#7593CD", "#75C8CD", "#75CDAD","#A175CD", "#CD7575"];

document.addEventListener("DOMContentLoaded", start);

function start() {
    const items = document.querySelectorAll(".sus");
    let lastColor = null; // 记录上一次使用的颜色

    items.forEach(item => {
        // 过滤掉上一次使用的颜色,生成可选颜色数组
        const availableColors = colores.filter(color => color !== lastColor);
        // 从可选数组中随机选一个
        const randomColor = availableColors[Math.floor(Math.random() * availableColors.length)];
        
        item.style.backgroundColor = randomColor;
        lastColor = randomColor; // 更新上一次颜色为当前使用的颜色
    });
}

关键逻辑说明

  • 用lastColor变量保存上一个元素使用的颜色值;
  • 每次给下一个元素选颜色时,先通过filter从颜色数组中排除lastColor,得到可选的颜色集合;
  • 从可选集合中随机选取颜色,赋值给当前元素后,更新lastColor为当前颜色,确保下一个元素不会重复使用这个颜色。

这样就能保证相邻的.sus元素背景色不会重复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:35:22