本文介绍如何使用 jquery 为每组连续 3 个元素统一设置递增的 `data-index` 值(如 3、6、9…),解决批量动态赋值需求,避免硬编码并提升可维护性。
在实际开发中,常需为 DOM 元素批量添加或更新 data-* 属性以支持后续逻辑(如分页渲染、动画分组、虚拟滚动索
引等)。本例要求:将 .item 元素按每 3 个一组划分,第一组 data-index="3",第二组 "6",第三组 "9",依此类推——即索引值呈等差数列(公差为 3),且每组内保持一致。
核心思路是利用当前元素索引 i(从 0 开始)计算所属“组号”,再映射为对应数据值。关键公式为:
var index = 3 * Math.floor(i / 3) + 3;
完整实现代码如下:
$('.item').each(function(i) {
var index = 3 * Math.floor(i / 3) + 3;
$(this).attr('data-index', index);
});✅ 优势说明:
⚠️ 注意事项:
该方案简洁、健壮、可复用,是处理分组数据属性赋值的经典实践。