解决checkbox的attr(checked)⼀直为undefined问题
最近本屌丝应项⽬开发需求,需要做个⼀个全选的checkbox功能。
哎呀吗~~这不是很简单的事情么,⼀个总的checkbox,N多个⼦checkbox,总的checkbox⼀旦选中,⼦checkbox全部选中,总的⼀旦不选中,⼦的也都不选中。
拿到这个⼩需求,本屌丝⼀阵窃喜,多么简单的功能啊,OK,两分钟完事~~~ 时间⼀分⼀秒的过去,本屌丝内⼼奔腾的草原的马⼉,从⼀直逐渐增加到了千万只~~~ 这尼玛怎么回事?
纳尼
为啥会这样??浏览器你傻了吗?然后果断换浏览器测试,从chrome到IE,从IE到⽕狐。结果都是这样 -_-|| 难道是jquery⼜做改进了
经过本屌丝⽤哈勃望远镜和⾼清镭射电⼦显微镜的查看,终于找到了端倪。。。。 原来,在jquery1.6版本便对此做出了修改:
既然jquery对此做出了修改,那肯定也就是有相应的更好的解决⽅法: .prop()便是解决这个问题的利器! 具体⽤法如下:
此时就会变成true或者false啦~~
于是乎,本屌丝的代码就改成了如下:
#check_all 为全选的总checkbox,#check_children为⼦checkbox 复制代码 代码如下:
$(\"#check_all\").change(function(){
$('.check_children').prop(\"checked\});
或者:
复制代码 代码如下:
$(\"#check_all\").change(function(){
var is_checked = $(this).prop(\"checked\");
$('.check_children').prop(\"checked\});
不过,我还是很喜欢⽤第⼀种⽅法的啦,代码越少越好嘛~~write less ,do more ! 很⽅便的解决了全选的问题呀~~~