选中/取消选中jQuery中的所有复选框

时间:2014-11-14 20:09:19

标签: jquery html css checkbox

我对jQuery知之甚少,我还需要一个名为&#34的复选框;选择所有"。当我选中此复选框时,必须选中HTML页面中的所有复选框。我怎么能这样做?

我正在使用下面的代码,但它不能正常工作:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="listbox.css" />
<script src="jquery-2.1.1.min.js"></script>

<script>
// Listen for click on toggle checkbox
$('#select-all').click(function(event) {   
    if(this.checked) {
        // Iterate each checkbox
        $(':checkbox').each(function() {
            this.checked = true;                        
        });
    }
});
</script>

</head>

<body>


<label for="blah">item-1</label> <input name="checkbox-1" id="checkbox-1" type="checkbox" />    
<br />
<input type="checkbox" name="select-all" id="select-all" />

</body>
</html>

我从下载链接下载了jQ:

http://jquery.com/download/

下载压缩的生产jQuery 2.1.1

http://code.jquery.com/jquery-2.1.1.min.js

4 个答案:

答案 0 :(得分:2)

    <ul>
      <li><label>item-1</label><input name="checkbox-1" id="checkbox-1" type="checkbox" class="checkitem" /></li> 
      <li><label>item-1</label><input name="checkbox-2" id="checkbox-2" type="checkbox" class="checkitem"  /></li> 
      <li><label>item-1</label><input name="checkbox-3" id="checkbox-3" type="checkbox" class="checkitem"  /></li> 
      <li><label>item-1</label><input name="checkbox-4" id="checkbox-4" type="checkbox" class="checkitem"  /></li> 
    </ul>
    <input type="checkbox" name="select-all" id="select-all" /> Check all

    <script>
    $(document).ready(function() {
        $('#select-all').click(function(event) {  
            if(this.checked) { 
                $('.checkitem').each(function() { 
                    this.checked = true;     
                });
            }else{
                $('.checkitem').each(function() {
                    this.checked = false; 
                });        
            }
        });

    });
    </script>

http://jsfiddle.net/9o3f01e0/

答案 1 :(得分:1)

[这是我制作的小提琴] [1]

在页面底部添加脚本

[1]: http://jsfiddle.net/zbjc0fpe/1/

答案 2 :(得分:0)

尝试这样的事情。

$('#select-all').click(function(event) {
   var checked = this.checked; 
   $("input[type=checkbox]").each(function(){
     $(this).prop('checked', checked);
   });
});

答案 3 :(得分:0)

只是因为笑容和咯咯笑......其他答案找不到工作,但我喜欢以下方法的简洁性和可重用性......所以以防这有助于任何人:

$(document).on('click','[data-toggle=checkAll]', function() {
    var $all     = $(this),
        $targets = $( $all.data('target') )
    ;
    $targets.prop('checked', $all.is(':checked') );
}

使用上面的脚本,你可以在页面上拥有任意多个“checkAll”复选框......每个“check all”复选框只需要指定一个不同的目标选择器:

<input type='checkbox' data-toggle='checkAll' data-target='.check-option' /> check all
<input type='checkbox' class='check-option' value='1' /> option 1
<input type='checkbox' class='check-option' value='2' /> option 2

<input type='checkbox' data-toggle='checkAll' data-target='.check-option2' /> check all 2
<input type='checkbox' class='check-option2' value='1' /> option 1
<input type='checkbox' class='check-option2' value='2' /> option 2