
本文介绍如何使用纯 JavaScript(无需 jQuery)遍历具有相同类名的 HTML 容器,并按 1→2→3→1→2→3 的规律为其动态添加 test1、test2、test3 三类样式,适用于 PHP 动态生成的列表场景。
本文介绍如何使用纯 javascript(无需 jquery)遍历具有相同类名的 html 容器,并按 1→2→3→1→2→3 的规律为其动态添加 `test1`、`test2`、`test3` 三类样式,适用于 php 动态生成的列表场景。
要实现容器元素循环应用三种不同 CSS 类(如 test1、test2、test3),核心思路是:获取所有目标元素 → 遍历并根据索引位置计算余数 → 动态添加对应类名。以下是完整、健壮、适合初学者的原生 JavaScript 实现方案。
✅ 推荐写法(简洁可靠)
// 获取所有 class="test" 的容器元素
const containers = document.querySelectorAll('.test');
// 遍历每个元素,按索引 % 3 + 1 计算循环序号(1, 2, 3, 1, 2, 3...)
containers.forEach((el, index) => {
const cycleIndex = (index % 3) + 1; // 得到 1、2 或 3
el.classList.add(`test${cycleIndex}`);
});
⚠️ 注意:element.classList.add() 不会移除原有 test 类,因此最终元素将同时拥有 test 和 test1/test2/test3。若需完全替换原始类(即只保留 test1 等),请改用:
el.className = `test${cycleIndex}`; // 覆盖整个 class 属性 // 或更安全地先清除再设置: el.className = ''; el.classList.add(`test${cycleIndex}`);
? 补充说明与注意事项
- CSS 优先级:确保 .test1、.test2、.test3 的样式规则在 .test 之后定义(或使用更高特异性),否则背景色等可能被 .test 覆盖。
-
执行时机:该脚本需在 DOM 加载完成后运行。推荐放在 底部,或包裹在 DOMContentLoaded 事件中:
document.addEventListener('DOMContentLoaded', () => { const containers = document.querySelectorAll('.test'); containers.forEach((el, i) => { el.classList.add(`test${(i % 3) + 1}`); }); }); - 兼容性:querySelectorAll 和 classList 支持 IE10+,现代项目可放心使用;如需兼容 IE9 及更早版本,可用 className 字符串拼接替代 classList。
- 扩展性提示:若将来需支持 N 种循环类(如 5 个),只需将 3 替换为变量 N,逻辑不变:(index % N) + 1。
通过以上方法,你无需依赖任何库,即可高效、清晰地实现三类样式的循环分配——这是前端开发中处理动态列表样式的典型实践。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











