解决JQuery全选/反选二次失效的问题
最近在项目中,遇到了一个问题。测试全选/取消全选功能时,第一次选中/取消选中母框时,可以同步子框全选/取消选中状态,然后点击母框,子框将没有响应。
原始代码的关键结构如下:
函数selectAll(obj){ $(' input[name=' XXX[]']')。attr('checked ',obj . checked);}输入类型=' checkbox ' id=' mother ' name=' mother ' onclick=' selectAll(this);'/select all inputtype=' checkbox ' id=' son1 ' name=' XXX[]'/subbox inputtype=' checkbox ' id=' XXX[]'/subbox inputtype=' checkbox ' id=' son3 ' name=' XXX[]'/子帧输入类型=' checkbox ' id=' son4 ' name=' XXX[]'/子帧步骤1:尝试正向波:
函数selectAll(obj){ if(obj . checked){ $(' input[name=' XXX[]']')。attr('checked ',true);} else { $('input[name='xxx[]']')。removeAttr('选中');}}典当-完全没有效果,弃之不用。
第二步:快速上网搜索,发现这个问题相当普遍。在遇到过这个问题的人当中,我应该是千里之外。看了几点,基本上说用prop代替attr就能解决问题,但具体如下:
但是项目使用的版本低于1.6,被告知最好不要更改版本。
第三步:无奈,JQuery放弃.尝试使用本机js编写,代码如下:
函数selectAll(obj){ var XXX=document . getelementsbyname(' XXX[]');if(obj . checked){ for(var I=0;i xxx.length我){ xxx[i]。选中=真;} } else { for(var I=0;i xxx.length我){ xxx[i]。选中=假;}}}测试一下,顺利解决。其实是个小问题,但给了我一些启示,不能局限于一个框架,换个角度思考往往能更好地解决问题。
解决JQuery全选/反选第二次失败的上述问题,就是边肖与大家分享的全部内容。希望能给大家一个参考,支持我们。
版权声明:解决JQuery全选/反选二次失效的问题是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。