解决JQuery全选/反选第二次失效的问题


Posted in jQuery onOctober 11, 2017

最近在项目中,遇到一个问题,测试全选/反选功能时,第一次对母框进行选中/非选中时,能同步子框的全选/反选状态,之后再点击母框,子框就没反应了。

原代码大致结构关键如下:

function selectAll(obj){
    $('input[name="xxx[]"]').attr("checked",obj.checked);
}

<input type="checkbox" id="mother" name="mother" onclick="selectAll(this);"/>全选

<input type="checkbox" id="son1" name="xxx[]" />子框<input type="checkbox" id="son2" name="xxx[]" />子框<input type="checkbox" id="son3" name="xxx[]" />子框<input type="checkbox" id="son4" name="xxx[]" />子框

步骤一:尝试正面刚一波:

function selectAll(obj){
   if(obj.checked) {
    $('input[name="xxx[]"]').attr("checked", true);
   } else {
    $('input[name="xxx[]"]').removeAttr("checked");
   }
}

卒-----完全没有效果,弃之。

步骤二:快速上网搜索一番,发现这个问题比较常见,在遇到过这个问题的人里,我应该排在千里之外了。点开几个看了,基本都是说用prop替代attr便能解决,奈何如下:

解决JQuery全选/反选第二次失效的问题

然而项目上用的版本低于1.6并被告知最好不要更改版本,同弃之。

步骤三:无可奈何,JQuery弃之...尝试改用原生js写法,代码如下:

function selectAll(obj){
 var xxx = document.getElementsByName("xxx[]");
  if(obj.checked) {
   for(var i = 0;i < xxx.length;i++) {
    xxx[i].checked = true;
   }
  } else {
   for(var i = 0;i < xxx.length;i++) {
    xxx[i].checked = false;
   }
  }
}

测试一下,顺利解决。其实也算是个小问题,不过给了我一些启示,不能局限在一个框里,多换个角度思考问题,往往能更好地去解决问题。

以上这篇解决JQuery全选/反选第二次失效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery用户头像裁剪插件cropbox.js使用详解
Jun 07 jQuery
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
jQuery实现键盘回车搜索功能
Jul 25 jQuery
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
jQuery实现模拟搜索引擎的智能提示功能简单示例
Jan 27 jQuery
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
Jun 10 jQuery
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
jQuery实现小火箭返回顶部特效
Feb 03 jQuery
jQuery实现聊天对话框
Feb 08 jQuery
jquery向后台提交数组的代码分析
Feb 20 jQuery
jQuery实现的form转json经典示例
Oct 10 #jQuery
认识jQuery的Promise的具体使用方法
Oct 10 #jQuery
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 #jQuery
jQuery插件artDialog.js使用与关闭方法示例
Oct 09 #jQuery
jQuery实现html双向绑定功能示例
Oct 09 #jQuery
jqueryUI tab标签页代码分享
Oct 09 #jQuery
jQuery ajax调用webservice注意事项
Oct 08 #jQuery
You might like
php strtotime 函数UNIX时间戳
2009/01/14 PHP
PHP 观察者模式的实现代码
2013/05/10 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
php中apc缓存使用示例
2013/12/25 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
php实现映射操作实例详解
2019/10/02 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
短信提示使用 特效
2007/01/19 Javascript
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
一些mootools的学习资源
2010/02/07 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
python实现稀疏矩阵示例代码
2017/06/09 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python读取中文txt文本的方法
2018/04/12 Python
python实现多进程代码示例
2018/10/31 Python
Python饼状图的绘制实例
2019/01/15 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Python JSON编解码方式原理详解
2020/01/20 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
医学护理系毕业生求职信
2013/10/01 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
2014年城管工作总结
2014/11/20 职场文书
党员承诺书格式范文
2015/04/28 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
2019求职信大礼包
2019/05/15 职场文书
让人感觉高大上的讲话稿怎么写?
2019/07/08 职场文书
导游词之桂林
2019/08/20 职场文书
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL