很多人更新了jQuery 1.9/2.0/2.1及其以上版本以上对于checkbox有些调整,在此知道91博客吃过亏过,所以给大家陈述一下,免得大家也吃亏。特别是对于checkbox选中状态和判断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)
在以前的jQuery版本中我们这样可以这样判断:
if($('#checkbox').attr('checked')){ //这里写内容 }
当是在jQuery1.9.0以上不行,我们可以这样写:
if($('#checkbox').prop('checked')){ //这里写内容 }
这里我就疑惑了,为什么jQuery不做到向下兼容呢?做软件不是应该做到向下兼容的吗,高版本能适应低版本的吧,唉~~~