<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>表格数据行全选/全不选/反选的示例</title><style>table {border: 1px solid;width: 500px;margin-left: 30%;}th, td {text-align: center;border: 1px solid;}div {/*border: 1px solid red;*/margin-top: 10px;margin-left: 30%;}.over {background-color: pink;}.out {background-color: white;}</style><script !src="">window.onload = function () {/*** 全选按钮* 给全选按钮注册点击事件监听器*/document.getElementById("selectAll").onclick = function () {// 获取所有的checkboxvar cbs = document.getElementsByName("cb");for (let i = 0; i < cbs.length; i++) {cbs[i].checked = true;}};/*** 控制第一个checkbox的状态* 规则:* 除了第一个checkbox的其它checkbox如果都是true,那么第一个checkbox则是true,否则是false*/function setFirstCbStatus() {// 获取第一个checkboxvar firstCb = document.getElementById("firstCb");// 获取全部的checkboxvar cbs = document.getElementsByName("cb");for (let i = 0; i < cbs.length; i++) {if (cbs[i].checked == false && cbs[i].id != "firstCb") {firstCb.checked = false;break;}// 判断是不是最后一次循环if (i == cbs.length - 1) {firstCb.checked = true;}}}/**** 反选功能的实现* 除了firstCb,其它checkbox反选*/document.getElementById("selectRev").onclick = function () {var cbs = document.getElementsByName("cb");for (let i = 0; i < cbs.length; i++) {// 判断是不是firstCb,不是才需要反选if (cbs[i].id != "firstCb") {cbs[i].checked = !cbs[i].checked;}}// 设置firstCb的状态setFirstCbStatus();};/*** firstCb的点击功能* 点击firstCb时,如果firstCb选中,其它checkbox也选中,否则其它checkbox不选中*/document.getElementById("firstCb").onclick = function () {var cbs = document.getElementsByName("cb");for (let i = 0; i < cbs.length; i++) {// 所有的checkbox的状态与firstCb的相同cbs[i].checked = this.checked;}};var cbs = document.getElementsByName("cb");for (let i = 0; i < cbs.length; i++) {if (cbs[i].id != "firstCb") {cbs[i].onclick = setFirstCbStatus;}}/*** 全不选功能* 给全不选按钮注册点击事件监听器*/document.getElementById("unSelectAll").onclick = function () {// 获取所有的checkboxvar cbs = document.getElementsByName("cb");for (let i = 0; i < cbs.length; i++) {cbs[i].checked = false;}};/*** 给所有的tr注册鼠标指针移入事件监听器和鼠标指针移出事件监听器*/var trs = document.getElementsByTagName("tr");for (let i = 0; i < trs.length; i++) {// 注册鼠标移入事件监听器trs[i].onmouseover = function () {// 将事件源即tr对象的class属性值设为"over"this.className = "over";};// 注册鼠标移出事件监听器trs[i].onmouseout = function () {// 将事件源即tr对象的class属性值设为"out"this.className = "out";};}};</script>
</head>
<body>
<table><caption>学生信息表</caption><tr><th><input id="firstCb" type="checkbox" name="cb"></th><th>编号</th><th>姓名</th><th>性别</th><th>操作</th></tr><tr><td><input type="checkbox" name="cb"></td><td>1</td><td>令狐冲</td><td>男</td><td><a href="javascript:void(0);">删除</a></td></tr><tr><td><input type="checkbox" name="cb"></td><td>2</td><td>任我行</td><td>男</td><td><a href="javascript:void(0);">删除</a></td></tr><tr><td><input type="checkbox" name="cb"></td><td>3</td><td>岳不群</td><td>男</td><td><a href="javascript:void(0);">删除</a></td></tr><tr><td><input type="checkbox" name="cb"></td><td>4</td><td>周芷若</td><td>女</td><td><a href="javascript:void(0);">删除</a></td></tr>
</table>
<div><input id="selectAll" type="button" value="全选"><input id="unSelectAll" type="button" value="全不选"><input id="selectRev" type="button" value="反选">
</div>
</body>
</html>

(前端开发)表格中的行全选、全不选、反选以及数据行背景色变换的示例代码相关推荐

  1. 前端开发流程中一定要注意的5个点

    1. 拒绝PRD和设计稿没有封板就要求排期,和产品设计充分沟通. 前端开发经常会遇到这样的情况,项目经理莫名奇妙发了个会议邀请,然后一股脑把产品下阶段的需求讲完,开发听得云里雾里,心里吐槽一堆细节产品 ...

  2. R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数

    R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数 目录

  3. R语言dplyr包移除dataframe数据行实战(Remove Rows):按照条件移除数据行、按照索引移除数据行、删除包含NA值的所有数据行、删除具体列包含NA值的数据行

    R语言dplyr包移除dataframe数据行实战(Remove Rows):按照条件移除数据行.按照索引移除数据行.删除包含NA值的所有数据行.删除具体列包含NA值的数据行 目录

  4. 表格序号_让Excel表格中的序号自动更新,再也不怕删除、插入行了

    以前小编发布过一篇<Excel自动生成序号的三种方法,省去一个一个录入的麻烦>,有粉丝问到:表格删除行或插入行后序号断了,能不能自动更新呢?今天小编就教大家自动更新序号的方法. 方法一:利 ...

  5. 广州蓝景分享—前端开发JavaScript中的Array对象与其他数组

    各位小伙伴好,今天我们广州蓝景与大家分享一些前端技术知识. JavaScript中的Array对象与其他编程语言中的数组一样,可以将多个项目的集合存储在单个变量名下,并具有用于执行常见数组操作的成员. ...

  6. 前端实现表格中的颜色变化以及不同点击效果

    环境: Python flask框架下的 html页面 目标: 1. 实现根据不同status显示不同颜色 2. 实现表格中对应链接根据不同状态不同点击效果 效果: 不同任务状态不同颜色显示,不同重启 ...

  7. Android中集成Jpush实现推送消息通知与根据别名指定推送附示例代码下载

    场景 经常会有后台服务向Android推送消息通知的情况. 实现 首先在Android Studio中新建一个Android应用 在Project根目录的build.gradle中配置了jcenter ...

  8. oracle最快访问行,Oracle技术网—在Oracle快速进行数据行存在性检查

    在Oracle快速进行数据行存在性检查 当在应用程序的业务逻辑中需要检查一个外键是否有相关的主键时,往往使用Select Count(*)类型的SQL语句.这是一个很显而易的方法,但却不是最快的方法. ...

  9. Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载)...

    (一) . 运行示例效果 * 运行后用鼠标拖动蓝色的<马>到任意位置, 将浏览器关闭后, 再重新访问本页面, 会发现<马>仍然在您拖到的位置 (二). AjaxPro.NET简 ...

最新文章

  1. 计算机aoa综合题word,AOA-word综合题操作步骤(修正版)
  2. NeHe OpenGL教程 第四十七课:CG顶点脚本
  3. Postman响应断言
  4. android 界面切换【转】
  5. Redis入门(暂不更新)
  6. C++基础知识点整理
  7. 架构设计 | 缓存管理模式,监控和内存回收策略
  8. 3-25构造方法String类中的api
  9. hdu 6096 String(AC自动机巧妙建图)
  10. 树莓派接入VGA显示器画面不全偏左的问题与VGA转HDMI连接显示器无法输出声音的解决
  11. android3.0快捷键,向日葵新出版本安卓3.0手机远程控制手机详细教程
  12. 0018 求球的表面积和体积
  13. 【HTML作业】HTML设计--电影网站,影视网站
  14. java常用文件工具类
  15. SAP ABAP 数字类型精讲
  16. mysql 分类标签表设计_如何进行文章分类和标签的数据库设计
  17. IAR STM32 函数和变量的绝对地址定位
  18. 解决bat批处理输出乱码的问题
  19. CUDA安装失败(已解决)
  20. 电脑蓝牙打电话-总结(三、千月Bluesoleil)

热门文章

  1. spock 集成测试_使用Spock 1.2简化对遗留应用程序的集成测试
  2. 垃圾收集 java_Java的内置垃圾收集如何使您的生活更美好(大部分时间)
  3. gradle groovy_适用于Java开发人员的Groovy吗? 认识Gradle,Grails和Spock
  4. java 函数式编程_Java函数式编程:Javaslang入门
  5. Selenium 4相对定位器如何改变您的测试方式?
  6. 在Microsoft Azure上运行Eclipse MicroProfile
  7. jsr250-api_JSON处理的Java API(JSR-353)–流API
  8. 使用Spring Security和jdbc的Spring Boot
  9. jmc线程转储_如何分析线程转储– IBM VM
  10. 工厂方法设计模式示例