jquery - 构建 "select all"复选框的最佳方法

标签 jquery html checkbox

我有一个“全选”复选框(A) 和其他一些与之相关的复选框(B)。

我希望:

  1. 当A勾选或不勾选时,使B全部与A相同。
  2. 检查完所有 B 后,再检查 A。
  3. 当未检查完所有 B 时,不检查 A。

首选使用 JQuery,但是 HTML5 有更好的方法吗?

喜欢:

<checkbox id="target" name="select all"/>
<checkbox relatetd="target" name="1"/>
<checkbox relatetd="target" name="2"/>

或者类似 xpath 的东西,如果我有许多具有不同 DOM 结构的子组:

<checkbox id="target" name="select all"/>
<div>
    <checkbox relatetd="../" name="1"/>
    <checkbox relatetd="../" name="2"/>
</div>

<checkbox id="target2" name="select all"/>
<div>
    <div>
        <checkbox relatetd="../../" name="1"/>
        <checkbox relatetd="../../" name="2"/>
    </div>
</div>

最佳答案

<input type="checkbox" id="checkAll" /> Check / Uncheck All

<input type="checkbox" class="chk" value="option1" /> Option 1
<input type="checkbox" class="chk" value="option2" /> Option 2
<input type="checkbox" class="chk" value="option3" /> Option 3




$('#checkAll').change(function () {
    $('.chk').prop('checked', this.checked);
});

$(".chk").change(function () {
    if ($(".chk:checked").length == $(".chk").length) {
        $('#checkAll').prop('checked', 'checked');
    } else {
        $('#checkAll').prop('checked', false);
    }
});

DEMO

这应该适合你

关于jquery - 构建 "select all"复选框的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17590101/

相关文章:

php - Jquery $.post 问题

javascript - 如何延迟我的 float ShareBar 直到用户向下滚动页面

jquery - 使用 Off 和 On 禁用/启用 Javascript 事件,如何解除绑定(bind)和绑定(bind)?

html - 居中对齐表格中的绝对文本

android - "check"无法动态创建复选框

javascript - 使用 jquery 在选中/未选中的复选框上添加/删除值

php - 让 Ajax 提交表单数据,但不会为文本区域执行此操作

javascript - 对 Bootstrap 表中的可见行和相关隐藏行进行排序

html - Iframe 没有控件工作,视频不播放

php - 循环一个复选框列表,其中一些可能未在 PHP 中选中