当我们使用jQuery为网页添加交互功能时,经常会用到checkbox,即复选框,来实现用户对某些选项的选择。而在对这些复选框进行操作时,我们会发现一个比较棘手的问题:checked属性的选中状态却不能通过jQuery的prop()方法来改变,即使prop(true)也没用。
这是因为在HTML DOM中,checked属性的所属对象是HTMLInputElement,而prop()方法只能设置HTML元素的属性,而不能设置DOM属性。因此,要解决这个问题,我们需要使用jQuery提供的attr()方法来设置checked属性。
$("input[type='checkbox']").attr("checked", true);
这里我们需要注意,使用attr()方法设置checked属性时,值必须是字符串形式,即使是布尔类型的true也要用字符串"true"来代替。而如果要取消选中状态,则需要将字符串"true"替换成字符串"false"。
$("input[type='checkbox']").attr("checked", false);
总之,对于不能通过prop()方法来设置checked属性选中状态的问题,我们只需要转而使用attr()方法即可轻松解决。