当前位置: 首页
前端开发
用原生JavaScript循环给容器元素添加三类CSS类

用原生JavaScript循环给容器元素添加三类CSS类

热心网友 时间:2026-07-17
转载

使用原生JavaScript的querySelectorAll获取容器元素,遍历时通过index%3+1计算循环编号,利用classList add与remove动态添加移除类名,实现按1→2→3规律循环切换三种CSS样式。该方法可用于轮播图、高亮标记等场景,无需依赖jQuery,代码简洁高效,易于维护,性能优越。

本文教你使用纯 JavaScript(无需借助 jQuery)为一组拥有相同初始类名的容器元素,依照 1→2→3→1→2→3 的循环规律,依次添加三种不同的 CSS 类,轻松实现样式的轮换效果。

在实际项目开发中,经常需要让一组元素按照特定顺序应用不同的样式——例如轮播图的指示器、列表的交替背景色、或者卡片组的花式排列。借助纯 JavaScript 就能轻松实现这一需求,完全无需依赖 jQuery。核心思路非常简洁:先获取所有目标元素,然后遍历并根据索引位置计算余数,最后动态添加对应的类名。下面直接给出可靠且易用的实现方案。

✅ 推荐写法(适合初学者快速上手)

// 获取所有 class="test" 的 div 元素
const containers = document.querySelectorAll('.test');

// 遍历每个元素,按索引 % 3 + 1 计算循环编号(1, 2, 3)
containers.forEach((el, index) => {
  const cycleIndex = (index % 3) + 1; // 得到 1、2、3、1、2、3...
  el.className = `test${cycleIndex}`; // 直接替换整个 class 属性(注意:会移除原始 "test")
});

⚠️ 注意:el.className = ...完全覆盖原有类名(包括初始的 test)。如果希望保留原始类或叠加新类,请使用 classList 方案。

✅ 更灵活的写法(保留原始类并叠加新类)

const containers = document.querySelectorAll('.test');
containers.forEach((el, index) => {
  const cycleIndex = (index % 3) + 1;
  // 先清除可能已存在的 test1/test2/test3 类
  el.classList.remove('test1', 'test2', 'test3');
  // 再添加对应的新类
  el.classList.add(`test${cycleIndex}`);
});

这种方式不仅保持了语义的清晰度,还有效避免了类名冲突,兼容性也非常出色(支持所有现代浏览器及 IE10+)。

来源:https://www.php.cn/faq/2825442.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
JavaScript动态加载与执行脚本的完整使用方法详解

JavaScript动态加载与执行脚本的完整使用方法详解

动态加载JavaScript脚本主要有三种方式:通过document createElement插入标签兼容性最好;import()支持按需加载ES模块并返回Promise;eval或Function构造器适用于执行代码字符串但风险较高。使用时需注意避免重复加载、处理超时及服务端渲染环境。

时间:2026-07-17 07:07
箭头函数多行逻辑的书写优化

箭头函数多行逻辑的书写优化

箭头函数多行逻辑需用花括号包裹并显式return,否则返回undefined;单行仅限一个表达式自动返回;返回对象字面量必须加小括号;复杂逻辑应拆分为独立函数,避免硬塞导致代码混乱。

时间:2026-07-17 07:07
如何设计JavaScript函数缓存防止内存无限增长

如何设计JavaScript函数缓存防止内存无限增长

防止函数缓存导致内存无限增长,需主动控制容量和寿命。采用LRU策略自动淘汰闲置条目,设定TTL防止脏数据长期驻留,优化键生成避免冗余堆积,并提供手动清理接口配合业务生命周期。

时间:2026-07-17 07:07
JavaScript布尔值转换核心逻辑详解

JavaScript布尔值转换核心逻辑详解

JavaScript布尔转换遵循明确的真值与假值规则,仅有6个假值:false、0、空字符串、null、undefined、NaN,其余所有值包括空数组、空对象均为真值。显式转换推荐Boolean(),隐式转换常见于条件判断与逻辑运算,需注意??与||的区别。

时间:2026-07-17 07:07
如何利用Performance API识别长任务来源的完整方法详解

如何利用Performance API识别长任务来源的完整方法详解

利用性能API识别长任务来源,需结合时间锚点、开发者工具验证和主动埋点。通过性能观察者捕获基础信息,使用性能标记缩小范围,借助Chrome开发者工具定位代码行,最后通过主动埋点验证,将长任务映射到具体代码段。

时间:2026-07-17 07:07
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜