jQuery接收复选框状态

我正在以这种方式更改复选框状态: $(this).attr("checked", 'checked');

在此之后我想收到复选框状态,但我得到了这个:

 $(this).attr('checked'): "checked" $(this).is(':checked'): false 

怎么会这样?

PS也许我没有正确地通过jQuery更改复选框状态?

正确的方法是$(this).prop('checked')返回布尔属性而不是属性(这是一个字符串)。

使用.prop()还可以设置检查状态: $(this).prop('checked', true_or_false);

正如您在http://jsfiddle.net/ThiefMaster/QR2fL/上看到的那样, .attr('checked')返回属性的初始值 – 在选中/取消选中复选框时,它不会更改。

你不应该选中这样的复选框:

 $(this).attr("checked", 'checked'); 

但是像这样

 $(this).prop("checked", true); 

要检查是否选中了复选框,您可以使用:

 $(this).prop('checked'); 

要么

 $(this).is(':checked'); 

返回布尔值