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

如何显示checkbox被勾选的顺序?首个勾选显示a、第二个显示b以此类推

实现方案

你可以通过原生JS实现该需求,不需要修改原有HTML结构,完整可运行代码如下:

<!-- 原有HTML结构 -->
<ul class="dropdown-content checkboxes">
  <li>
    <label>
      <input type="checkbox" />
      Billy
    </label>
  </li>
  <li>
    <label>
      <input type="checkbox" />
      Jacob
    </label>
  </li>
  <li>
    <label>
      <input type="checkbox" />
      Bob
    </label>
  </li>
  <li>
    <label>
      <input type="checkbox" />
      Alexandren
    </label>
  </li>
  <li>
    <label>
      <input type="checkbox" />
      Erren
    </label>
  </li>
  <li>
    <label>
      <input type="checkbox" />
      Stewgart
    </label>
  </li>
  <li>
    <label>
      <input type="checkbox" />
      Jillian
    </label>
  </li>
  <li>
    <label>
      <input type="checkbox" />
      Other
    </label>
  </li>
</ul>

<!-- 标记样式 可根据需求自行调整 -->
<style>
.check-order-tag {
  display: inline-block;
  margin-left: 6px;
  color: #2196F3;
  font-weight: bold;
}
</style>

<!-- 逻辑代码 -->
<script>
// 按勾选顺序存储已选中的checkbox元素
const checkedList = [];
// 获取所有目标checkbox
const checkboxes = document.querySelectorAll('.checkboxes input[type="checkbox"]');

checkboxes.forEach(checkbox => {
  checkbox.addEventListener('change', function() {
    if (this.checked) {
      // 勾选时追加到数组末尾
      checkedList.push(this);
    } else {
      // 取消勾选时从数组中移除对应元素
      const index = checkedList.indexOf(this);
      if (index > -1) checkedList.splice(index, 1);
    }
    // 操作完成后更新所有字母标记
    updateCheckTags();
  })
})

function updateCheckTags() {
  // 先清空所有已有的标记
  document.querySelectorAll('.check-order-tag').forEach(tag => tag.remove());
  // 遍历当前已选列表,按顺序生成对应字母标记
  checkedList.forEach((checkbox, index) => {
    const tag = document.createElement('span');
    tag.className = 'check-order-tag';
    // 索引转小写字母:0对应a、1对应b,依次类推
    tag.textContent = String.fromCharCode(97 + index);
    checkbox.parentElement.appendChild(tag);
  })
}
</script>

逻辑说明

  • 用数组checkedList按勾选先后顺序存储已选中的checkbox元素,保证顺序完全符合勾选操作的先后
  • 每次勾选/取消勾选操作后,先清空所有现有标记,再重新给当前已选元素按顺序分配字母
  • 字母生成逻辑利用ASCII码转换,97是小写字母a的ASCII值,加上数组索引即可得到对应顺序的字母
  • 取消任意勾选后,剩余已选元素的标记会自动重新排序,始终按当前勾选的先后顺序展示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 17:15:02