jquery attr('checked',false)错误

Ale*_*der 0 javascript jquery

使用jquery 版本1.8我可以通过以下方式选中和取消选中复选框$el.attr('checked', logic_value):

http://jsbin.com/oyIQuJo/1/edit

使用jquery 版本1.10.1(或2.0.2),它只更改一次以检查然后取消选中,我无法再次设置它:

http://jsbin.com/oyIQuJo/2/edit

http://jsbin.com/oyIQuJo/3/edit

这是一个已知的行为/错误?最好的方法是什么,这样我可以多次检查/取消选中它?

我可以做$el[0].checked = logic_value(http://jsbin.com/oyIQuJo/4/edit),但我真的不喜欢这个解决方案,因为如果它有多个元素,我应该遍历选择器的所有元素.

Raj*_*amy 5

你必须使用.prop()而不是.attr().因为.prop()实际上是用于设置类似属性所做的checked,selected等等.

正确的方法是,

$el.prop('checked', logic_value)
Run Code Online (Sandbox Code Playgroud)

请阅读此处以了解情况.prop()