如何选择Jquery中的所有复选框?

时间:2014-07-03 05:21:07

标签: jquery

<form>
    <input type="checkbox" name="newsletter" value="Hourly" checked="checked">  <input   type="checkbox" name="newsletter" value="Daily">
    <input type="checkbox" name="newsletter" value="Weekly" checked>
    <input type="checkbox" name="newsletter" value="Monthly">
    <input type="checkbox" name="newsletter" value="Yearly">
    <br><button id="selectall">Select All</button>
</form>
<script>
    var selectall = function() {
        $("input[type=checkbox]").attr("checked", "true");
    };
    $("#selectall").on("click", selectall);
</script>

我编写了一个JQuery脚本,当我点击“全选”按钮时,它将选中所有复选框。现在,选择后,我将手动取消选中所有复选框,然后按“全选”。但这一次它无法选中所有复选框。如何防止这种情况?

5 个答案:

答案 0 :(得分:3)

这就是为什么我们必须使用.prop()代替.attr()

$("input[type=checkbox]").prop("checked","true");    

DEMO

答案 1 :(得分:0)

使用prop()代替attr()

var selectall = function() {
     $("input[type=checkbox]").prop("checked","true");    
};
$("#selectall").on("click", selectall );

Fiddle

答案 2 :(得分:0)

尝试这个

$("#selectall").on("click", function(){
    $("input[type=checkbox]").prop("checked","true");    
});

答案 3 :(得分:0)

您应该使用.prop()而不是.attr()。试试这个:

var selectall = function() {
     $("input[type=checkbox]").prop("checked","true");    
};
$("#selectall").on("click", selectall );

DEMO

prop()vs attr()ref:.prop() vs .attr()

答案 4 :(得分:0)

请确保您的代码应该在dom ready函数里面。并使用.prop()检查所有复选框

$(function() {

       var selectall = function() {
       $("input[type=checkbox]").prop("checked",true);    
       };
       $("#selectall").on("click", selectall );
});