关于使用jquery对input中type为radio的标签checked属性的增加与移除

时间:2021-02-14 21:39:43

需求:对radio的checked属性先消除然后进行重新设置;

初步方案:

$("auForm input :radio[value='0']").removeAttr('checked');
$("auForm input :radio[value='1']").removeAttr('checked'); if(l.isover==0) $("auForm input :radio[value='0']").attr('checked','true');
if(l.isover==1) $("auForm input :radio[value='1']").attr('checked','true');

实际问题:在使用removeAttr()移除了radio的checked属性后,使用attr()重新增加不起作用;

解决方法:

$("#auForm input:radio[value='1']").removeAttr('checked');
$("#auForm input:radio[value='0']").removeAttr('checked'); if(l.isover==1) $("#auForm input:radio[value='1']").prop('checked','true');
if(l.isover==0) $("#auForm input:radio[value='0']").prop('checked','true');

即使用prop()可重新配置上该属性;

为此去查了一下关于jquery中关于attr()和prop()的使用:

从 jQuery 1.6 开始新增了一个方法 prop(),因为在 jQuery 1.6 之前,使用 attr() 有时候会出现不一致的行为。

根据官方的建议:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr(),

详情可参看该博客:http://wenzhixin.net.cn/2013/05/24/jquery_attr_prop。