在低版本的jquery中,checkbox是否选中可以这样获取:
$("input[type=checkbox]").attr("checked")//checked/undefined(选中/没选中)
但是在jquery高版本后再这样取值会发现取到的值一直是undefined的情况(设置还是可以的attr(“checked”,”checked”)),原因是高版本的attr()只能用来获取标签明文定义的属性,意思就是标签上面没显示出来的属性attr()都是取不到的:
<input type="checkbox" />;//undefined
但如果像下面这样写还是可以获取到的:
<input type="checkbox" checked />
或者
<input type="checkbox" checked="checked" />
<input type="checkbox" checked="" />
这两种写法都还是可以获取到checked值的,不过获取到的值是对是错就要自己测试了,选中的时候值是否等于checked,没选中的时候值是否是空,这个还真的要测试一下;所以如果是高版本的jquery建议用以下的方法来获取checked属性的值:
var isChecked=$(".selector").prop("checked");//true/false
var isChecked=$(".selector").is(":checked");//true/false
总之,使用的时候你要自己测试着使用这些方法,发现取值有问题要更换另一个试一试;当然,这里无论用attr还是prop都要考虑一下兼容性的问题,不同浏览器下取值可能会不同;作者当年也是被这个弄的有点烦,因为用prop取值在不同的浏览器下取值不同,特别是IE浏览器,有些情况是勾掉了取到的值反而是true,所以一定要做测试;让我们都做一个严谨的程序员。