本文详解如何正确使用 jQuery 的 .each() 遍历并为多个 .numeration 元素依次分配字母表中的对应字符,避免所有元素被统一赋值为最后一个字母的常见错误。
本文详解如何正确使用 jquery 的 `.each()` 遍历并为多个 `.numeration` 元素依次分配字母表中的对应字符,避免所有元素被统一赋值为最后一个字母的常见错误。
在前端开发中,常需为一组动态生成的 DOM 元素(如 <div class="numeration">)添加序号标识。若希望按英文字母顺序(A → B → C → … → U)编号,直观思路是遍历元素并逐个写入字母数组对应项——但初学者易陷入两个典型误区:作用域混淆与循环嵌套误用。
核心在于:利用 .each() 回调函数的 index 参数直接映射数组下标,避免额外 for 循环,并始终操作当前遍历节点($(this)),而非全局选择器:
const alphabetArray = [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U"];$(".numeration").each(function(index) { // ✅ $(this) 指向当前遍历的单个 .numeration 元素 // ✅ index 自动递增:0→A, 1→B, ..., 20→U $(this).html(alphabetArray[index]);});
$(this).html(alphabetArray[index] ?? `#${index + 1}`);
document.querySelectorAll('.numeration').forEach((el, i) => { el.textContent = alphabetArray[i] ?? '';});
通过精准绑定索引与元素实例,即可优雅实现字母序号化渲染——简洁、高效、无副作用。