当前位置: 首页 > news >正文

JS(JavaScript)中如何实现,复选框checkbox多选功能

 起始界面:

代码元素:

  <p><input type="checkbox" id="checkedAll"> 全选按钮</p><p><input type="checkbox" class="cl"> 选项1</p><p><input type="checkbox" class="cl">选项2</p><p><input type="checkbox" class="cl">选项3</p><p><input type="checkbox" class="cl">选项4</p>

实现多选功能:

    <script>var checkedAll = document.getElementById('checkedAll');var optionList = document.querySelectorAll('.cl');checkedAll.onchange = function () {for (var i = 0; i < optionList.length; i++) {optionList[i].checked = checkedAll.checked;}};for (let i = 0; i < optionList.length; i++) {optionList[i].onclick = function(){checkedAll.checked = Array.from(optionList).every(function(item){return item.checked;})}}</script>

 注意:

当我们通过querySelectorAll()获取的类元素是一个伪数组,因此我们需要将其转化为真正的数组

Array.from(arr):将其转为数组

arr.every(function(item){return item.checked;
}

 以上代码指的是,数组中任何一个元素(item),都被选中;

例子:

        var arr = [12, 48, 56, 3, 25, 60];// var flag = arr.every(function (item) {//     return item > 2;// })var flag = arr.every((item) => {return item > 2;})console.log(flag);

arr.every()返回的是一个boolean值,指的是每一个元素都大于2,返回true;

        var arr = [12, 48, 56, 3, 25, 60];// var flag = arr.some(function (item) {//     return item > 50;// })var flag = arr.some((item) => {return item > 50;})console.log(flag);

arr.every()返回的是一个boolean值,指的是只要有一个元素大于50,返回true;

        var arr = [12, 48, 56, 3, 25, 60];var newArr = [];// var newArr = arr.filter(function (item) {//     return item > 50;// })var newArr = arr.filter((item) => {return item > 30;})for (const element of newArr) {console.log(element+" ");}

arr.filter()返回的是一个数组,是一个过滤器,指的是返回数字大于30的数组元素;

        var arr = [12, 48, 56, 3, 25, 60];var newArr = [];// var newArr = arr.filter(function (item) {//     return item > 50;// })var newArr = arr.filter((item) => {return item > 30;})for (const element of newArr) {console.log(element+" ");}

运行结果:

http://www.lryc.cn/news/312868.html

相关文章:

  • 直接修改zynq petalinux编译出来的rootfs.cpio.gz文件内容
  • 什么是 Golang 类型断言
  • mysql数据库root权限读写文件
  • 力扣爆刷第88天之hot100五连刷26-30
  • Ethersacn的交易数据是什么样的(2)
  • 学习Android的第二十二天
  • JavaScript——流程控制(程序结构)
  • 如何用ChatGPT+GEE+ENVI+Python进行高光谱,多光谱成像遥感数据处理?
  • AIGC工具( 7个 )
  • 学习Java的第一天
  • 【设计模式】工厂模式与抽象工厂模式
  • 使用plasmo框架开发浏览器插件,注入contents脚本和给页面添加UI组件
  • python并发 惰性处理大型数据集
  • Docker将本地的镜像上传到私有仓库
  • [LeetBook]【学习日记】有效数字——状态机
  • 学习目标2024
  • 引入js,刷新清除缓存
  • 【VSCODE修改代码行间距】解决方案
  • lvs+keepalive
  • 用spark读取及存储数据
  • 蓝牙 | 软件: Qualcomm BT Audio 问题分析(4)----检查MIPS使用情况
  • 【实战】K8S集群部署nacos并接入Springcloud项目容器化运维
  • prometheus监控zookeeper方案
  • 智能照明控制系统的优点有哪些
  • Cent OS 安装 vmware tools
  • 写一个关于RN的分秒毫秒组件(组件状态由同一个父组件控制)
  • javascript中字符串处理,常用的方法汇总
  • STM32CubeMX学习笔记14 ---SPI总线
  • Gson(List<Object>转String 、String转List<Object>)
  • uniapp路由跳转的方式