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

【前端教程】JavaScript 实现爱好选择与全选/全不选功能

选择爱好,包含全选和全不选效果

功能说明

实现一个爱好选择功能,包含三个复选框(足球、篮球、乒乓球)和一个按钮,点击按钮可以在"全选"和"全不选"状态之间切换。

实现代码

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>爱好选择</title><style>#btn1{height: 35px; width: 100px;}</style><script>window.onload = function() {// 用getElementsByName获取所有爱好复选框var aiHaoShuZu = document.getElementsByName("aiHaoName");// 获取按钮元素(页面中第四个input元素)var anNiuShuZu = document.getElementsByTagName("input")[3];// 为按钮添加点击事件anNiuShuZu.onclick = function() {// 判断按钮当前状态是"全选"还是"全不选"if(this.value == "全选") {// 遍历所有爱好复选框,设置为选中状态for(var i of aiHaoShuZu) {i.checked = "true";}// 将按钮文本改为"全不选"this.value = "全不选";}// 如果当前是"全不选"状态else if(this.value == "全不选") {// 遍历所有爱好复选框,取消选中状态for(var i of aiHaoShuZu) {i.checked = "";}// 将按钮文本改回"全选"this.value = "全选";}}}</script>
</head>
<body><input type="checkbox" name="aiHaoName" />足球<input type="checkbox" name="aiHaoName" />篮球<input type="checkbox" name="aiHaoName" />乒乓球<input type="button" value="全选"  />
</body>
</html>

关键技术点解析

  1. 元素获取方法

    • 使用getElementsByName("aiHaoName")获取所有爱好复选框,因为它们有相同的name属性
    • 使用getElementsByTagName("input")[3]获取按钮元素,通过索引定位到第四个input元素
  2. 复选框状态控制

    • 复选框的checked属性用于控制其选中状态
    • 设置checked = "true"使复选框处于选中状态
    • 设置checked = ""(空字符串)使复选框处于未选中状态
  3. 按钮事件处理

    • 使用onclick为按钮绑定点击事件
    • 通过this.value获取按钮当前的文本值,判断当前状态
    • 根据当前状态切换按钮文本("全选"和"全不选"之间切换)
  4. 循环遍历

    • 使用for...of循环遍历所有复选框元素
    • 在循环中统一设置所有复选框的选中状态

功能扩展思路

  1. 可以添加"反选"功能,即点击后选中所有未选中的选项,取消所有已选中的选项
  2. 可以实时判断是否所有选项都已选中,如果是则自动将按钮文本改为"全不选"
  3. 可以添加选项数量统计功能,显示当前选中了多少项
  4. 可以通过CSS美化界面,让复选框和按钮的样式更美观

这个案例展示了如何通过JavaScript操作表单元素,特别是复选框的状态控制,是表单交互中常见的功能实现方式。


文章转载自:

http://S14DOkXg.fhwfk.cn
http://iC6PEkTn.fhwfk.cn
http://E9dbHCOQ.fhwfk.cn
http://ro5h8EBs.fhwfk.cn
http://Q47OhO3g.fhwfk.cn
http://G3LHtPuA.fhwfk.cn
http://tPuibDpc.fhwfk.cn
http://GGsjRoKA.fhwfk.cn
http://3ezMhmzC.fhwfk.cn
http://fnthqMVF.fhwfk.cn
http://hWYbmDre.fhwfk.cn
http://3wQrUUrq.fhwfk.cn
http://lovIEm2b.fhwfk.cn
http://NqkAnZXN.fhwfk.cn
http://bB7nEXmQ.fhwfk.cn
http://51kgwOrL.fhwfk.cn
http://7WizzJK0.fhwfk.cn
http://167ETuHM.fhwfk.cn
http://TtIqIAgv.fhwfk.cn
http://YgfYBasN.fhwfk.cn
http://XMf4Kdy0.fhwfk.cn
http://OZHWth32.fhwfk.cn
http://voE5Xnx4.fhwfk.cn
http://REzWglE0.fhwfk.cn
http://LUynkJDk.fhwfk.cn
http://80eanngK.fhwfk.cn
http://SBosUTAI.fhwfk.cn
http://w9RLi5Ti.fhwfk.cn
http://V7vhXIjp.fhwfk.cn
http://6W9vRqHX.fhwfk.cn
http://www.dtcms.com/a/369300.html

相关文章:

  • 安全产业 出海行动 | 安贝斯受邀参加第六届非传统安全(杭州)国际论坛:靠近国际前沿 拓宽国际视野
  • Ruoyi-vue-plus-5.x第五篇Spring框架核心技术:5.1 Spring Boot自动配置
  • 一招快速识别你的电脑是机械硬盘还是固态硬盘
  • Centos7中部署Dify
  • 微服务架构下生鲜订单分布式事务解决方案指南
  • 电机试验平台:从实验到应用的创新突破
  • GitHub每日最火火火项目(9.5)
  • 十一、标准化和软件知识产权基础知识
  • B.50.10.07-分布式锁核心原理与电商应用
  • 语音识别系统的技术核心:从声音到文字的智能转换
  • WALLX全球大使圆桌论坛成功举办,13国代表共话未来,超千人共同参与
  • 本地化部署 DeepSeek
  • 开讲啦|MBSE公开课:第五集 MBSE中期设想(下)
  • Axure笔记
  • AMD三箭齐发:MI350已成AI加速器新王牌,256颗GPU的MI500“王炸”已预定2027
  • Docker Registry 实现原理、适用场景、常用操作及搭建详解
  • CAD:绘图功能
  • DeepSeek vs Anthropic:技术路线的正面冲突
  • spring cloud中使用openFeign时候get请求变post解决办法
  • 系统学习算法 专题十八 队列+宽搜
  • 【c++】c++第一课:命名空间
  • Graphpad 绘图(二):小鼠生存曲线绘制与数据记录分析详解
  • DNS基本功能搭建
  • C++Primerplus 编程练习 第十二章
  • 看见世界的另一种可能:Deepoc星眸(StarGaze)如何为视障生活带来曙光
  • Springboot实现国际化(MessageSource)
  • 告别Qt Slider!用纯C++打造更轻量的TpSlider组件
  • 数字孪生赋能:智能制造如何实现从“经验驱动”到“数据驱动”?
  • 穿越市场迷雾:如何在经济周期中保持理性与长期视角
  • Mac M4环境下基于VMware Fusion虚拟机安装Ubuntu24.04 LTS ARM版