位置: IT常识 - 正文

原生js实现复选框(全选/全不选/反选)效果【含完整代码】(原生js操作数组的方法)

编辑:rootadmin
原生js实现复选框(全选/全不选/反选)效果【含完整代码】 实现效果

推荐整理分享原生js实现复选框(全选/全不选/反选)效果【含完整代码】(原生js操作数组的方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:原生js设置select选中,原生js实现promise,原生js写选项卡,原生js赋值,原生js操作数组的方法,原生js操作dom,js原生选择器,原生js设置select选中,内容如对您有帮助,希望把文章链接给更多的朋友!

原生js实现复选框(全选/全不选/反选)效果【含完整代码】(原生js操作数组的方法)

1、勾选后,可以获取到所勾选的值组成的数组,并展示到页面; 2、全部勾选,以及取消勾选时,要相应地更新全选框的状态及文字显示; 3、点击反选,将所有选项的选择状态置换,并相应改变全选框的状态;

实现思路1、获取所勾选的值组成的数组

定义一个数组checkValues,存放用户所勾选的内容。 再定义一个函数getValues(),遍历选框数组checks,如果选框checks[i]被选择,则将value加入数组。遍历完成后,使用innerText属性将数组展示到页面中。 捕获选框的onclick点击事件,当用户点击时,执行getValues()。

// 显示选择内容的文字 var checkText = document.getElementById("check_text"); // 定义选择内容的数组 var checkValues = []; // 根据复选框组勾选状态,获取当前已选择的值并渲染至页面 function getValues(){ // 数组置空 checkValues=[]; // 依次检查是否勾选,将勾选的内容放进数据 for(var i = 0; i < checks.length; i++){ if(checks[i].checked){ checkValues.push(checks[i].value); } } // 将选择的数组中的内容渲染至页面 checkText.innerText = JSON.stringify(checkValues); checkText.style.color = "#09f" }2、更新全选框状态及文字显示

定义一个判断是否全选的函数isCheckAll(),遍历选框数组checks,如果全部被选择,返回true,否则返回false。 捕获选框的click点击事件,当用户点击时,判断isCheckAll()的值,若为真,勾上全选框,并且更新提示文字;若为假,不勾选全选框,文字也为默认的“全选”。

// 全选input勾选框 var checkAll = document.getElementById("checkAll"); // 检查列表复选框是否全部勾选 function isCheckAll(){ for(var i = 0; i < checks.length; i++){ if(!checks[i].checked){ return false; } } return true; } // 根据全选框状态改变文字 function changeText(){ // 如果全选框是勾选的状态,提示文字变为“全不选” if(checkAll.checked){ document.querySelector("dl>dt>label").innerHTML = "全不选"; }else{ document.querySelector("dl>dt>label").innerHTML = "全选"; } }3、反选

当反选按钮被点击时,遍历复选框,将选择状态全部置反,然后判断状态是否为全选

// 点击“反选”,所有复选框状态取反 ReverseCheck.onclick = function(){ for(var i = 0; i < checks.length; i++){ checks[i].checked = !checks[i].checked; } // 若点击反选时,全选框为选中状态,则取消选中 if(checkAll.checked){ checkAll.checked = false; } // 模拟列表点击事件,若反选后,复选框全部选中,则选中全选框,更改文字 dd.click(); }完整代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>复选框(checkbox)全选/全不选/反选</title> <style> body, dl, dt, dd, p { margin: 0; padding: 0; } body { font-family: Tahoma; font-size: 12px; } label, input, a { vertical-align: middle; } label { padding: 0 10px 0 5px; } a { color: #09f; text-decoration: none; } a:hover { color: red; } dl { width: 120px; margin: 10px auto; padding: 10px 5px; border: 1px solid #666; border-radius: 5px; background: #fafafa; } dt { padding-bottom: 10px; border-bottom: 1px solid #666; } dt label { font-weight: 700; } p{ text-align: center; } dd > p { margin-top: 10px; text-align: left; } </style></head><body> <dl> <dt> <input type="checkbox" id="checkAll" /> <label>全选</label> <a href="javascript:;">反选</a> </dt> <dd> <p> <input type="checkbox" name="item" value="one"/> <label>one</label> </p> <p> <input type="checkbox" name="item" value="two"/> <label>two</label> </p> <p> <input type="checkbox" name="item" value="three"/> <label>three</label> </p> <p> <input type="checkbox" name="item" value="four"/> <label>four</label> </p> <p> <input type="checkbox" name="item" value="five"/> <label>five</label> </p> <p> <input type="checkbox" name="item" value="six"/> <label>six</label> </p> <p> <input type="checkbox" name="item" value="seven"/> <label>seven</label> </p> <p> <input type="checkbox" name="item" value="eight"/> <label>eight</label> </p> <p> <input type="checkbox" name="item" value="nine"/> <label>nine</label> </p> <p> <input type="checkbox" name="item" value="ten"/> <label>ten</label> </p> </dd> </dl> <p>您所选择的内容包括:<span id="check_text"></span></p><br> <p> 1、切换全选/全不选文字; <br /> <br /> 2、根据选中个数更新全选框状态; </p></body><script> // 全选input勾选框 var checkAll = document.getElementById("checkAll"); // 复选框组 var checks = document.querySelectorAll("dd > p > input"); // 选择列表 var dd = document.querySelector("dd"); // 反选 var ReverseCheck = document.querySelector("dl > dt > a") // 显示选择内容的文字 var checkText = document.getElementById("check_text"); // 定义选择内容的数组 var checkValues = []; // 检查列表复选框是否全部勾选 function isCheckAll(){ for(var i = 0; i < checks.length; i++){ if(!checks[i].checked){ return false; } } return true; } // 根据全选框状态改变文字 function changeText(){ // 如果全选框是勾选的状态,提示文字变为“全不选” if(checkAll.checked){ document.querySelector("dl>dt>label").innerHTML = "全不选"; }else{ document.querySelector("dl>dt>label").innerHTML = "全选"; } } // 根据复选框组勾选状态,获取当前已选择的值并渲染至页面 function getValues(){ // 数组置空 checkValues=[]; // 依次检查是否勾选,将勾选的内容放进数据 for(var i = 0; i < checks.length; i++){ if(checks[i].checked){ checkValues.push(checks[i].value); } } // 将选择的数组中的内容渲染至页面 checkText.innerText = JSON.stringify(checkValues); checkText.style.color = "#09f" } // 列表被点击 dd.onclick = function(){ // 检查是否已勾选所有复选框,更改全选框状态 if(isCheckAll()){ checkAll.checked = "true"; }else{ checkAll.checked = false; } // 根据全选框状态改变文字 changeText(); // 获取当前所选择的内容并渲染至页面 getValues(); } // 全选框被点击 checkAll.onclick = function(){ // 所有复选框的状态跟全选框的状态保持一致 for(var i = 0; i < checks.length; i++){ checks[i].checked = checkAll.checked; } // 根据全选框状态改变文字 changeText(); // 获取当前所选择的内容并渲染至页面 getValues(); } // 点击“反选”,所有复选框状态取反 ReverseCheck.onclick = function(){ for(var i = 0; i < checks.length; i++){ checks[i].checked = !checks[i].checked; } // 若点击反选时,全选框为选中状态,则取消选中 if(checkAll.checked){ checkAll.checked = false; } // 若反选后,复选框全部选中,则选中全选框,更改文字 dd.click(); }</script></html>
本文链接地址:https://www.jiuchutong.com/zhishi/300382.html 转载请保留说明!

上一篇:目标检测:Faster-RCNN算法细节及代码解析(目标检测yolo算法)

下一篇:使用Nodejs搭建HTTP服务,并实现公网远程访问「内网穿透」(nodejs搭建http服务器接收请求)

  • 钉钉里的文档如何转发到微信里(钉钉里的文档如何打印)

    钉钉里的文档如何转发到微信里(钉钉里的文档如何打印)

  • 华为手表怎么换自己照片表盘(华为手表怎么换电池)

    华为手表怎么换自己照片表盘(华为手表怎么换电池)

  • oppo隐私相册照片在哪里找(oppo隐私相册照片删除怎么恢复)

    oppo隐私相册照片在哪里找(oppo隐私相册照片删除怎么恢复)

  • 抖音如何设置定时关闭(抖音如何设置定时关闭直播)

    抖音如何设置定时关闭(抖音如何设置定时关闭直播)

  • 字体开源的意义是什么(开源字体的定义)

    字体开源的意义是什么(开源字体的定义)

  • win7电脑能进入安全模式,但是进不了系统(win7怎么进入)

    win7电脑能进入安全模式,但是进不了系统(win7怎么进入)

  • 筛选后复制为什么还出现全部数据(筛选后复制为什么复制不全)

    筛选后复制为什么还出现全部数据(筛选后复制为什么复制不全)

  • 苹果xs屏幕都偏黄吗(苹果xs屏幕偏黄正常么)

    苹果xs屏幕都偏黄吗(苹果xs屏幕偏黄正常么)

  • 联想小新air14怎么开机(联想小新air14怎么样 值得买吗)

    联想小新air14怎么开机(联想小新air14怎么样 值得买吗)

  • qq闺蜜可登录对方吗(qq闺蜜关系有限制吗)

    qq闺蜜可登录对方吗(qq闺蜜关系有限制吗)

  • 小米10青春版有指纹解锁吗(小米10青春版有高刷吗)

    小米10青春版有指纹解锁吗(小米10青春版有高刷吗)

  • 网卡是组成局域网的什么部件(网卡是组成局域网的)

    网卡是组成局域网的什么部件(网卡是组成局域网的)

  • 华为手机有些照片删不掉(华为手机有些照片不能美颜怎么回事)

    华为手机有些照片删不掉(华为手机有些照片不能美颜怎么回事)

  • QQ的自动回复可以续火花嘛(qq的自动回复可以给单人设置吗)

    QQ的自动回复可以续火花嘛(qq的自动回复可以给单人设置吗)

  • 华为手机上显示hd是什么意思(华为手机上显示一个圆圈怎么消除)

    华为手机上显示hd是什么意思(华为手机上显示一个圆圈怎么消除)

  • 苹果id在异地请求登录是怎么回事(苹果id在异地请求登录,有什么影响)

    苹果id在异地请求登录是怎么回事(苹果id在异地请求登录,有什么影响)

  • 苹果x多长多宽(苹果x多少厘米宽)

    苹果x多长多宽(苹果x多少厘米宽)

  • 手机摄像头模糊不清怎么办(手机摄像头模糊怎么办不聚焦)

    手机摄像头模糊不清怎么办(手机摄像头模糊怎么办不聚焦)

  • iphone访问限制不见了(iphone访问限制不能退出id)

    iphone访问限制不见了(iphone访问限制不能退出id)

  • 金立双卡双待设置方法(金立手机装两张卡怎么设置)

    金立双卡双待设置方法(金立手机装两张卡怎么设置)

  • 视频怎么消音发朋友圈(怎么能给视频消音)

    视频怎么消音发朋友圈(怎么能给视频消音)

  • 华为互传功能在哪(华为手机互传功能在哪里打开)

    华为互传功能在哪(华为手机互传功能在哪里打开)

  • 华为myaal10是啥型号  (华为mya—al10)

    华为myaal10是啥型号 (华为mya—al10)

  • 酷狗音乐如何转换成mp3格式(酷狗音乐如何转移到另外一个手机)

    酷狗音乐如何转换成mp3格式(酷狗音乐如何转移到另外一个手机)

  • 在win10系统中鼠标左键变成右键是怎么回事?(win10鼠标在哪)

    在win10系统中鼠标左键变成右键是怎么回事?(win10鼠标在哪)

  • 激活对话框中tab键切换选项实现蓝色按钮切换(怎么激活对话框取消)

    激活对话框中tab键切换选项实现蓝色按钮切换(怎么激活对话框取消)

  • Fishwife不是“鱼妻子”!真实含义让人颤抖!(frogfish躄鱼)

    Fishwife不是“鱼妻子”!真实含义让人颤抖!(frogfish躄鱼)

  • 资产处置出售
  • 开普票需要交税多少
  • 小规模未开票收入填在哪里
  • 预提工资计入哪个科目
  • 税控系统技术维护费可以抵扣吗
  • 开户行为什么是中国建设银行总行
  • 表外负债和表内负债对比
  • 合同签订之后国家降税怎么办?
  • 小企业货币资金1710元正常吗
  • 非居民企业直接投资居民企业取得股息
  • 总公司和分公司类型必须一样么
  • 发票丢失说明怎么填写
  • 商场预付卡是什么意思
  • 养老金余额退休能取吗
  • 工程预付款需要监理审批吗
  • 预缴税款个人所得税如何计算
  • 福利费抵扣了进项税有2年了怎么办
  • 红包营销活动方案
  • 积分小技巧
  • 在职员工 开公司
  • 企业购买设备可以税前扣除吗
  • 工资计提不发放工资个税
  • 公司绿化购买的苗木如何进行账务处理?
  • 给研发人员福利怎么做账
  • 在国外餐厅吃饭服务费和税费
  • 两地取得工资个税怎么交
  • 出租固定资产收取租金
  • 打开win10 defender
  • 农业种植公司要纳税吗
  • neo什么意思翻译成中文
  • from origin ‘null‘ has been blocked by CORS policy: Cross origin requests are only supported for ...
  • vue页面路由传参
  • 买一赠一的会计处理与税务处理
  • 定额发票已验旧是什么意思
  • 小规模减免的附件有哪些
  • 用php写的一个冒号的句子
  • 悬崖徒步
  • 猿创部落科技有限公司
  • 目标检测标注框的规则
  • 做毕业设计,前景如何
  • php设置目录权限
  • 无形资产摊销的方法
  • 社保缴费基数是怎么确定的
  • 房租增值税怎么计算
  • 建筑企业增值税收入确认时间
  • file文件对象
  • 销货方和供货方的区别
  • 法律中的大额和小额规定
  • 软件开发企业怎么结转成本
  • 律师事务所收取费用有标准吗
  • 电子承兑背书一般多久到账
  • 银行定期利息怎么算一年
  • 在建工程工伤保险延期费用计算
  • 购买商标权需要缴税吗
  • 转租收入如何入账
  • 进项税红字发票怎么样申报
  • 现金收款的程序是什么
  • 外资企业再投资退税
  • 已启动申报比对异常怎样才能作废,还没过税期
  • 建筑施工企业中,负责编制
  • 流动比率和速动比率过高说明什么
  • win7系统打开程序卡住几秒怎么办
  • win10隐藏设置
  • windows10mode
  • redhat磁盘挂载
  • 无法打开opencv2
  • cocos2d安装
  • 记住密码自动登录 会更新登陆信息吗
  • django 实例
  • 经纬科技it6000
  • python数据结构与算法题库
  • js数组操作方法
  • java script怎么学
  • 长沙房产税如何征收
  • 税务局三方协议变更
  • 单据整理方法
  • 小学语文教学的核心素养
  • 购买房屋交契税
  • 党员走访群众问题汇总
  • 18个税种已立法数量
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设