在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属性,并将其专门称为属性,而不是属性。