我正在从jQuery 1.5.1升级 - 我已经阅读了关于“检查”复选框(在1.6中)的“新”方法,使用
prop("checked", true);
但删除复选框的正确/首选方式是什么?
这两种方法似乎都有效
$('#someSelector').removeProp("checked");
或
$('#someSelector').prop("checked", false);
这些方法之间有区别吗?我应该使用哪个?
由于
答案 0 :(得分:12)
根据http://api.jquery.com/removeprop/ .removeProp不应该用于删除已选中。 (因为它被完全删除,不能再添加回来。)
.removeProp()方法删除.prop()方法设置的属性。
使用DOM元素或窗口对象的一些内置属性, 如果尝试删除,浏览器可能会生成错误 属性。 jQuery首先将值undefined赋值给属性和 忽略浏览器生成的任何错误。一般来说,它只是 必须删除已在对象上设置的自定义属性, 而不是内置(本机)属性。
注意:请勿使用此方法删除本机属性,例如 选中,禁用或已选中。这将删除该属性 完全,一旦删除,不能再添加到元素。使用 .prop()将这些属性设置为false。
答案 1 :(得分:11)
更准确地回答您的问题:
我总是喜欢
$('#someSelector').prop('checked', false);
在
$('#someSelector').removeProp('checked');
因为属性和属性之间的重要区别在于这种情况,删除属性等于将属性(被检查)设置为false。
删除复选框的“已选中”属性根本没有任何意义,因为复选框将始终被选中或取消选中。因此,将该属性设置为false以取消选中该框在逻辑上是一致的,删除属性不是。
答案 2 :(得分:3)
hiya我虽然我的评论上面会有太多的文字,但为了清楚起见,请写在这里:(我同意@Claudio)
如果这没有帮助让我知道我将删除我的帖子欢呼! :)
所以从这里开始:http://blog.jquery.com/2011/05/12/jquery-1-6-1-released/
[quote]截至1.6我估计...
元素值是其他东西,然后是属性或属性 值。如果要取消选中复选框,则要删除 检查属性所以使用$(“#subscribe:checked”)。prop(“checked”, 假);
【引用】
jQuery 1.6 +
使用新的.prop()函数:
$(“。myCheckbox”)。prop(“checked”,true);
$(“。myCheckbox”)。prop(“checked”,false);
Setting "checked" for a checkbox with jQuery?希望它有所帮助,我认为你是对的!干杯!
答案 3 :(得分:-1)
$('#someSelector').removeAttr('checked');
删除已检查的属性,你应该好好去。
有关prop vs attr的更多信息,请点击此处。他们还提到了checked属性,并将其专门称为属性,而不是属性。