javascript - 获取并显示选中的复选框索引

标签 javascript jquery html checkbox

我试图在用户每次使用 Jquery 选中复选框时显示复选框位置。例如,当用户检查星期一时,它会显示位置 0,当用户检查星期日时,它会显示位置 6。我找不到办法做到这一点。我曾尝试使用 .index(),但它一直显示 0。知道如何使用吗?

HTML代码

<div class="col-sm-9 checkbox_days">
    <label class="checkbox">
        <input type="checkbox" class="day" name="day[]" value="Monday"> Monday
    </label>
    <label class="checkbox">    
        <input type="checkbox" class="day" name="day[]" value="Tuesday"> Tuesday
    </label>
    <label class="checkbox">
        <input type="checkbox" class="day" name="day[]" value="Wednesday"> Wednesday
    </label>
    <label class="checkbox">
        <input type="checkbox" class="day" name="day[]" value="Thursday"> Thursday
    </label>
    <label class="checkbox">                        
        <input type="checkbox" class="day" name="day[]" value="Friday"> Friday
    </label>
    <label class="checkbox">                        
        <input type="checkbox" class="day" name="day[]" value="Saturday"> Saturday
    </label>
    <label class="checkbox">                        
        <input type="checkbox" class="day" name="day[]" value="Sunday"> Sunday
    </label>
</div>

JQuery

$('.day').on('change', function() {
    $(this).each(function() {
        if (this.checked) {
            alert($(this).index());
        } else {
            alert("unchecked");
        }
    });
});

最佳答案

您需要使用 .index(element)在列表中查找元素索引。

$('.day').index(this)

If no argument is passed to the .index() method, the return value is an integer indicating the position of the first element within the jQuery object relative to its sibling elements.

$(function() {
  $('.day').on('change', function() {

    if (this.checked) {
      alert($('.day').index(this));
    } else {
      alert("unchecked");
    }

  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-sm-9 checkbox_days">
  <label class="checkbox">
    <input type="checkbox" class="day" name="day[]" value="Monday">Monday
  </label>
  <label class="checkbox">
    <input type="checkbox" class="day" name="day[]" value="Tuesday">Tuesday
  </label>
  <label class="checkbox">
    <input type="checkbox" class="day" name="day[]" value="Wednesday">Wednesday
  </label>
  <label class="checkbox">
    <input type="checkbox" class="day" name="day[]" value="Thursday">Thursday
  </label>
  <label class="checkbox">
    <input type="checkbox" class="day" name="day[]" value="Friday">Friday
  </label>
  <label class="checkbox">
    <input type="checkbox" class="day" name="day[]" value="Saturday">Saturday
  </label>
  <label class="checkbox">
    <input type="checkbox" class="day" name="day[]" value="Sunday">Sunday
  </label>
</div>

关于javascript - 获取并显示选中的复选框索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30885108/

相关文章:

javascript - Angular 将 HTML 响应数据显示到 View 中

javascript - 图像无法响应 AnythingSlider

javascript - 在 Sortable.js 中拖放列表 : How to set a different drop area than a Sortable list?

javascript - 使用 Angular 从 JSON 调用单个结果

javascript - Angular 示例代码不起作用

javascript - 将 React 组件添加到 vanilla JS 文件

javascript - 如何在自调用的异步函数中插入参数?

jquery - 导航栏切换器点击功能不起作用

jquery - 将 contenteditable span 的长度限制为 5 个数字字符

jquery - 如果主菜单关闭/打开,则更改子菜单的加号/减号