解决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实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
JQuery实现图片轮播效果
May 08 jQuery
jQuery实现选中行变色效果(实例讲解)
Jul 06 jQuery
jQuery常用选择器详解
Jul 17 jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
jQuery实现鼠标响应式透明度渐变动画效果示例
Feb 13 jQuery
jQuery实现的两种简单弹窗效果示例
Apr 18 jQuery
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
深入分析jQuery.one() 函数
Jun 03 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
自写的一个jQuery圆角插件
2010/10/26 Javascript
JS高级笔记
2011/07/13 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
Javascript之String对象详解
2016/06/08 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
通过webpack引入第三方库的方法
2018/07/20 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
50岁生日感言
2014/01/23 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript