attr('checked',false)
不在IE6上工作是因为在IE6中,使用attr()
方法来设置或获取属性值时,对于布尔属性(如checked
)的处理方式与其他浏览器不同。
在其他浏览器中,使用attr('checked',false)
可以将checked
属性的值设置为false
,即取消选中复选框或单选按钮。
然而,在IE6中,使用attr('checked',false)
并不能取消选中复选框或单选按钮,因为IE6将checked
属性视为一个布尔属性,只要存在该属性,不论其值为何,都会被视为选中状态。
解决这个问题的方法是使用removeAttr('checked')
来移除checked
属性,或者使用prop('checked', false)
来设置checked
属性的值为false
。这两种方法在大多数浏览器中都能正常工作,包括IE6。
对于前端开发人员来说,为了兼容IE6,可以使用条件注释或检测浏览器版本来针对IE6使用特定的代码进行处理,例如:
if ($.browser.msie && $.browser.version == '6.0') {
// IE6特定处理代码
$('input').removeAttr('checked');
} else {
$('input').prop('checked', false);
}
总结起来,attr('checked',false)
不在IE6上工作是因为IE6对布尔属性checked
的处理方式与其他浏览器不同。为了在IE6上取消选中复选框或单选按钮,可以使用removeAttr('checked')
或prop('checked', false)
来移除或设置checked
属性的值。
领取专属 10元无门槛券
手把手带您无忧上云