jQuery1.9.1即其以上版本针对checkbox的调整

知道91 | Web前端 | 2015-01-09 | 阅读:5271

很多人更新了jQuery 1.9/2.0/2.1及其以上版本以上对于checkbox有些调整,在此知道91博客吃过亏过,所以给大家陈述一下,免得大家也吃亏。特别是对于checkbox选中状态和判断checkbox是否选中。

jQuery1.9.1即其以上版本针对checkbox的调整

jQuery1.9.1即其以上设置checkbox选中与不选中状态

在原来的1.9.1以上的版本我们可以这么写

$('#checkbox').attr('checked',true)
$('#checkbox').attr('checked',false)

但此方法在jquery1.9.1中,有些处理不一样

IE10,Chrome,FF中,对于选中状态,第一次$('#checkbox').attr('checked',true)可以实现,但是很奇怪当通过代码清除选中,下次再通过代码 $('#checkbox').attr('checked',true) 去选中时,虽然代码中有checked='checked',但是画面表现都没有打勾。而在IE8,IE6下无此问题。后来知道我们应该这样写了

$('#checkbox').prop('checked',true)

jQuery1.9.1/2.0/2.1 判断checkbook是否选中

在以前的jQuery版本中我们这样可以这样判断:

if($('#checkbox').attr('checked')){
//这里写内容
}

当是在jQuery1.9.0以上不行,我们可以这样写:

if($('#checkbox').prop('checked')){
//这里写内容
}

总结

这里我就疑惑了,为什么jQuery不做到向下兼容呢?做软件不是应该做到向下兼容的吗,高版本能适应低版本的吧,唉~~~