首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用jQuery选中所有复选框?

如何使用jQuery选中所有复选框?
EN

Stack Overflow用户
提问于 2013-08-31 00:31:29
回答 21查看 402.3K关注 0票数 149

我不是jQuery专家,但我已经尝试为我的应用程序创建了一个小脚本。我想选中所有的复选框,但它不能正常工作。

首先,我尝试使用attr,之后我又尝试使用prop,但我做错了一些事情。

我先试了一下:

代码语言:javascript
复制
$("#checkAll").change(function(){

  if (! $('input:checkbox').is('checked')) {
      $('input:checkbox').attr('checked','checked');
  } else {
      $('input:checkbox').removeAttr('checked');
  }       
});

但这并不管用。

接下来:这比上面的代码工作得更好

代码语言:javascript
复制
$("#checkAll").change(function(){

  if (! $('input:checkbox').is('checked')) {
      $('input:checkbox').prop('checked',true);
  } else {
      $('input:checkbox').prop('checked', false);
  }       
});

这两个例子都不起作用。

JSFiddle:http://jsfiddle.net/hhZfu/4/

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2013-08-31 00:32:30

您需要使用.prop()来设置checked属性

代码语言:javascript
复制
$("#checkAll").click(function(){
    $('input:checkbox').not(this).prop('checked', this.checked);
});

演示:Fiddle

票数 352
EN

Stack Overflow用户

发布于 2014-09-06 13:30:43

这里有一个完整的解决方案。

代码语言:javascript
复制
$(document).ready(function() {
    $("#checkedAll").change(function() {
        if (this.checked) {
            $(".checkSingle").each(function() {
                this.checked=true;
            });
        } else {
            $(".checkSingle").each(function() {
                this.checked=false;
            });
        }
    });

    $(".checkSingle").click(function () {
        if ($(this).is(":checked")) {
            var isAllChecked = 0;

            $(".checkSingle").each(function() {
                if (!this.checked)
                    isAllChecked = 1;
            });

            if (isAllChecked == 0) {
                $("#checkedAll").prop("checked", true);
            }     
        }
        else {
            $("#checkedAll").prop("checked", false);
        }
    });
});

Html应该是:

选中三个复选框上的单个复选框将被选中和取消选中。

代码语言:javascript
复制
<input type="checkbox" name="checkedAll" id="checkedAll" />

<input type="checkbox" name="checkAll" class="checkSingle" />
<input type="checkbox" name="checkAll" class="checkSingle" />
<input type="checkbox" name="checkAll" class="checkSingle" />

希望这对某人有帮助,就像对我一样。

JS小提琴https://jsfiddle.net/52uny55w/

票数 49
EN

Stack Overflow用户

发布于 2018-05-01 16:02:17

我认为当用户手动选择全部复选框时,应自动选中全部复选框,或者用户取消选中所有选定复选框中的一个复选框时,应自动取消选中全部复选框。这是我的代码..

代码语言:javascript
复制
$('#checkall').change(function () {
    $('.cb-element').prop('checked',this.checked);
});

$('.cb-element').change(function () {
 if ($('.cb-element:checked').length == $('.cb-element').length){
  $('#checkall').prop('checked',true);
 }
 else {
  $('#checkall').prop('checked',false);
 }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<input type="checkbox" name="all" id="checkall" />Check All</br>
<input type="checkbox" class="cb-element" /> Checkbox  1</br>
<input type="checkbox" class="cb-element" /> Checkbox  2</br>
<input type="checkbox" class="cb-element" /> Checkbox  3

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18537609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档