gpt4 book ai didi

jquery - .prop ('checked' ,false) 或 .removeAttr ('checked' )?

转载 作者:IT王子 更新时间:2023-10-29 03:24:54 27 4
gpt4 key购买 nike

随着 prop 方法的引入,现在我需要知道取消选中复选框的可接受方式。是吗:

$('input').filter(':checkbox').removeAttr('checked');

$('input').filter(':checkbox').prop('checked',false);

最佳答案

jQuery 3

从 jQuery 3 开始,removeAttr 不再 将相应的属性设置为 false:

Prior to jQuery 3.0, using .removeAttr() on a boolean attribute such as checked, selected, or readonly would also set the corresponding named property to false. This behavior was required for ancient versions of Internet Explorer but is not correct for modern browsers because the attribute represents the initial value and the property represents the current (dynamic) value.

It is almost always a mistake to use .removeAttr( "checked" ) on a DOM element. The only time it might be useful is if the DOM is later going to be serialized back to an HTML string. In all other cases, .prop( "checked", false ) should be used instead.

Changelog

因此只有 .prop('checked',false) 才是使用这个版本的正确方法。


原始答案(自 2011 年起):

对于具有底层 bool 属性的属性(checked 是其中之一),removeAttr 自动将底层属性设置为 false。 (请注意,这是 jQuery 1.6.1 中添加的向后兼容性“修复”之一)。

所以,两者都行得通...但是您给出的第二个示例(使用 prop)是两者中更正确的一个。如果您的目标是取消选中该复选框,那么您确实想要影响属性,而不是属性,并且无需通过 removeAttr 来执行此操作。 p>

关于jquery - .prop ('checked' ,false) 或 .removeAttr ('checked' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169826/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com