jQuery 接收复选框状态
我以这种方式更改复选框状态: $(this).attr("checked", 'checked');
在此之后我想接收复选框状态,但我得到了这个:
$(this).attr('checked'): "checked"
$(this).is(':checked'): false
这是怎么回事?
PS 也许我没有通过 jQuery 正确更改复选框状态?
I'm changing checkbox status this way: $(this).attr("checked", 'checked');
After this I want to receive checkbox status, but I got this:
$(this).attr('checked'): "checked"
$(this).is(':checked'): false
How this can be?
P.S. Maybe I'm not correctly changing checkbox status via jQuery?
正确的方法是
$(this).prop('checked')
返回布尔值 property 而不是属性(它是一个字符串)。使用
.prop()
您还可以设置选中状态:$(this).prop('checked', true_or_false);
可以在 http://jsfiddle.net/ThiefMaster/QR2fL/ 上看到,
.attr('checked')
返回属性的初始值 - 在选中/取消选中复选框时它不会更改。The proper way is
$(this).prop('checked')
to return the boolean property instead of the attribute (which is a a string).Using
.prop()
you can also set the checked state:$(this).prop('checked', true_or_false);
As you can see on http://jsfiddle.net/ThiefMaster/QR2fL/,
.attr('checked')
returns the initial value of the attribute - it does not changed when checking/unchecking the checkbox.