jQuery中利用attr()方法设置checkBox 勾选以及禁用的效果测试

通过jQuery中的attr()方法给checkbox设置禁用或者勾选效果时,遇到了一些难以理解的问题,首先,因为1对应boolean 中的true,0对应boolean中的false,所以就想通过将0或者1作为参数来实现checkbox的勾选或者禁用效果。



设置checked属性

jQuery中利用attr()方法设置checkBox 勾选以及禁用的效果测试_第1张图片


现象:将1作为参数调用方法时,复选框能正常勾选上,然而将0作为参数时,并没按照我的想法,取消勾选,复选框依然勾选上的

同理,设置disabled属性


jQuery中利用attr()方法设置checkBox 勾选以及禁用的效果测试_第2张图片

现象:将1作为参数设置复选框禁用效果时,能够实现禁用效果,然而将0作为参数时,却没有按照我的预想,取消掉禁用


在以上两个测试中,如果直接将布尔值true或者false作为参数调用方法时,效果实现正常。使用jQuery 中prop()方法设置复选框禁用或者勾选效果时,则不存在以上方法中出现的问题,补充,当取消勾选或者取消禁用无效时,可以使用removeAttr()方法可以实现相同效果。猜测导致这个问题出现的原因可能是property与attribute之间的不同。可能导致该问题的原因 将domElement.checked赋值为1或者0,实现勾选、禁用的效果正常,然而,使用dom.setAttribute()方法时,checked和disabled参数无论是1或者0,true或者false,都是勾选上或者被禁用了的。




你可能感兴趣的:(jQuery中利用attr()方法设置checkBox 勾选以及禁用的效果测试)