在jQuery 1.7中取消选中复选框的正确方法是什么?

我正在从jQuery 1.5.1升级 – 我已经阅读了关于“检查”复选框(在1.6中)的“新”方法

prop("checked", true); 

但删除复选框的正确/首选方法是什么?

这两种方法似乎都有效

 $('#someSelector').removeProp("checked"); 

要么

 $('#someSelector').prop("checked", false); 

这些方法之间有区别吗? 我应该使用哪个?

谢谢

根据http://api.jquery.com/removeprop/.removeProp不应该用于删除已选中。 (因为它被完全删除,不能再添加回来。)

.removeProp()方法删除.prop()方法设置的属性。

使用DOM元素或窗口对象的一些内置属性,如果尝试删除属性,浏览器可能会生成错误。 jQuery首先将值undefined赋值给属性,并忽略浏览器生成的任何错误。 通常,只需要删除已在对象上设置的自定义属性,而不是内置(本机)属性。

注意:请勿使用此方法删除本机属性,例如已选中,已禁用或已选中。 这将完全删除属性,一旦删除,就不能再次添加到元素。 使用.prop()将这些属性设置为false。

更准确地回答您的问题:

我总是喜欢

 $('#someSelector').prop('checked', false); 

过度

 $('#someSelector').removeProp('checked'); 

因为在这种情况下属性和属性之间的重要区别是,删除属性等于将属性(被检查)设置为false。

删除复选框的“已选中”属性根本没有任何意义,因为复选框将始终被选中或取消选中。 因此,将该属性设置为false以取消选中该框在逻辑上是一致的,删除属性不是。

hiya我虽然我的评论上面会有太多的文字塞满了所以写在这里为了清晰:(我同意@Claudio)

如果这没有帮助让我知道我会删除我的post欢呼! 🙂

所以从这里: http : //blog.jquery.com/2011/05/12/jquery-1-6-1-released/

[引用]截至1.6我估计……

元素值是其他东西,然后是属性或属性的值。 如果要取消选中复选框,则要删除checked属性,因此请使用$(“#subscribe:checked”)。prop(“checked”,false);

[引用]

jQuery 1.6+

使用新的.prop()函数:

$(“。myCheckbox”)。prop(“checked”,true);

$(“。myCheckbox”)。prop(“checked”,false);

使用jQuery设置“已选中”复选框? 希望它有所帮助,我认为你是对的! 干杯!

 $('#someSelector').removeAttr('checked'); 

删除checked属性,你应该好好去。

有关prop vs attr的更多信息,请参阅 他们还提到了checked属性,并将其专门称为属性,而不是属性。

http://api.jquery.com/prop/