在jquery1.9之前,我们对于一个checkbox对象来进行重复选择或者取消,我们可以使用这个方法
$().attr('checked',checked);//选中
$().removeAttr('checked');//取消选中
但是在1.9版本以后我们会发现这个不好使了,具体怎么不好使了呢,我们第一次点击选中和取消是可行的,但是第二次点击选中就没有效果了,那么我们可以使用另外一个方法来解决这个问题
$().prop('checked',true);//选中
$().prop('checked',false);//取消
那么这个方法究竟是做什么的呢,为什么可以解决这个问题呢,我查了一下资料
这个方法的解释是这样的
获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。
jQuery 1.6之前 .attr()方法在取某些 attribute 的值时,会返回 property 的值,这就导致了结果的不一致。从 jQuery 1.6 开始, .prop()方法 方法返回 property 的值,而.attr() 方法返回 attributes 的值。根据W3C标准,在checked属性是一个布尔属性, 这意味着,如果这个属性(attribute)是目前存在, 即使,该属性没有对应的值,或者被设置为空字符串值,或甚至是"false",相应的属性(property)为true。 这才是真正的所有布尔属性(attributes)。
然而,要记住的最重要的概念是checked特性(attribute)不是对应它checked属性(property)。特性(attribute)实际对应的是defaultChecked属性(property),而且仅用于设置复选框最初的值。checked特性(attribute)值不会因为复选框的状态而改变,而checked属性(property)会因为复选框的状态而改变。因此, 跨浏览器兼容的方法来确定一个复选框是否被选中,是使用该属性(property):
if ( elem.checked )
if ( $(elem).prop("checked") )
if ( $(elem).is(":checked")
上面那些,看得懂就看吧,看不懂就直接用就可以了