解决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滑动到底部加载下一页数据的实例代码
May 22 jQuery
jQuery实现简单的滑动导航代码(移动端)
May 22 jQuery
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 jQuery
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
jQuery插件artDialog.js使用与关闭方法示例
Oct 09 jQuery
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
Dec 24 jQuery
如何用input标签和jquery实现多图片的上传和回显功能
May 16 jQuery
jQuery pjax 应用简单示例
Sep 20 jQuery
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
jQuery实现动态生成年月日级联下拉列表示例
May 11 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
图书管理程序(一)
2006/10/09 PHP
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
php在线代理转向代码
2012/05/05 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
解析Python中while true的使用
2015/10/13 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python使用str &amp; repr转换字符串
2016/10/13 Python
python实现控制台打印的方法
2019/01/12 Python
python tkinter窗口最大化的实现
2019/07/15 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
电大自我鉴定范文
2013/10/01 职场文书
志愿者宣传口号
2014/06/17 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
环保建议书作文400字
2015/09/14 职场文书
Python进行区间取值案例讲解
2021/08/02 Python
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
python编程项目中线上问题排查与解决
2021/11/01 Python