JS小实例笔记三——全选、反选、全不选

2024-03-27 10:08

本文主要是介绍JS小实例笔记三——全选、反选、全不选,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JS小实例笔记三——全选、反选、全不选及优化

 

首先要了解选中的三种形式

①.用户手动点击勾选

②.标签中写的checked

③.JS操作dom

图示如下:

 

 创建文件demo.html

<!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>全选、反选、全不选</title>
</head><body><form action=""><p><input type="checkbox" name="" id="">A</p><p><input type="checkbox" name="" id="">B</p><p><input type="checkbox" name="" id="">C</p><p><input type="checkbox" name="" id="">D</p></form><button>全选</button><button>反选</button><button>全不选</button>
</body></html>
<!--  选中的三种形式①.用户手动点击勾选②.标签中写的checked③.JS操作dom  -->
<script>let button = document.getElementsByTagName('button');let input = document.getElementsByTagName('input');//全选button[0].onclick = function() {for (let i = 0; i < input.length; i++) {input[i].checked = true;}};//反选button[1].onclick = function() {for (let i = 0; i < input.length; i++) {input[i].checked = !input[i].checked;}};//全不选button[2].onclick = function() {for (let i = 0; i < input.length; i++) {input[i].checked = false;}}
</script>

文件demo.html的优化

<!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>全选、反选、全不选</title>
</head><body><form action=""><p><input type="checkbox" name="" id="">A</p><p><input type="checkbox" name="" id="">B</p><p><input type="checkbox" name="" id="">C</p><p><input type="checkbox" name="" id="">D</p></form><button onclick="getAll(0)">全选</button><button onclick="getAll(1)">反选</button><button onclick="getAll(2)">全不选</button>
</body></html>
<!--  选中的三种形式①.用户手动点击勾选②.标签中写的checked③.JS操作dom  -->
<script>let button = document.getElementsByTagName('button');let input = document.getElementsByTagName('input');//重复内容可以进行封装。这里封装为函数,进行优化function getAll(num) {for (let i = 0; i < input.length; i++) {if (num == 0) {input[i].checked = true;} else if (num == 1) {input[i].checked = !input[i].checked;} else {input[i].checked = false;}}}
</script>

这篇关于JS小实例笔记三——全选、反选、全不选的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/851747

相关文章

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

PyQt6 键盘事件处理的实现及实例代码

《PyQt6键盘事件处理的实现及实例代码》本文主要介绍了PyQt6键盘事件处理的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录一、键盘事件处理详解1、核心事件处理器2、事件对象 QKeyEvent3、修饰键处理(1)、修饰键类

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal