jQuery接收复选框状态

Yek*_*ver 5 javascript checkbox jquery

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

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

$(this).attr('checked'): "checked"
$(this).is(':checked'): false
Run Code Online (Sandbox Code Playgroud)

怎么会这样?

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

Thi*_*ter 14

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

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

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


Nic*_*tti 6

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

$(this).attr("checked", 'checked');
Run Code Online (Sandbox Code Playgroud)

但是像这样

$(this).prop("checked", true);
Run Code Online (Sandbox Code Playgroud)

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

$(this).prop('checked');
Run Code Online (Sandbox Code Playgroud)

要么

$(this).is(':checked');
Run Code Online (Sandbox Code Playgroud)

返回布尔值