解决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实现文章图片弹出放大效果
Apr 06 jQuery
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
Sep 12 jQuery
jQuery实现点击图标div循环放大缩小功能
Sep 30 jQuery
jQuery选择器之基本选择器用法实例分析
Feb 19 jQuery
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
jquery实现商品sku多属性选择功能(商品详情页)
Dec 20 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
jQuery实现的分页插件完整示例
May 26 jQuery
jquery实现简单每周轮换的日历
Sep 10 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 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
JS判定是否原生方法
2013/07/22 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
用python读写excel的方法
2014/11/18 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
python版简单工厂模式
2017/10/16 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
Django权限控制的使用
2021/01/07 Python
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
幼儿园教研活动方案
2014/01/19 职场文书
党支部特色活动方案
2014/08/20 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
2015年社区服务活动总结
2015/03/25 职场文书
五一放假通知怎么写
2015/08/18 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang