HTML + CSS + JavaScript 实现勾选动态表格中的记录

要求

添加一个学生信息表格,表格的信息有编号、姓名、性别、信息勾选4个字段,可以任意的勾选其中0行或以上信息行。

主要步骤分析

  1. 创建一个学生信息表格
  2. 定义三个按钮:全选、全不选、反选
  3. 给添加按钮绑定点击事件

步骤实现

  1. 创建一个表格

    <table>
        <caption>学生信息表</caption>
        <tr>
            <th><input type="checkbox" name="cb" id="firstCb"></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>
    </table>
  2. 定义三个按钮:全选、全不选、反选

    <div>
        <input type="button" id="selectAll" value="全选">
        <input type="button" id="unSelectAll" value="全不选">
        <input type="button" id="selectReverse" value="反选">
    </div>
  3. 用CSS样式,对table、div进行修饰

    table {
        /* 为表格添加边框(盒子模型) */
        border: 1px solid;
        /* 表格宽度为500个像素点 */
        width: 500px;
        /* 设置与table元素相关联的盒子模型的左外边距 */
        margin-left: 30%;
    }
    td,th{
        /* 为表格的每个单元格添加边框(盒子模型) */
        border: 1px solid;
        /* 将每个单元格的文本信息向中对齐 */
        text-align: center;
    }
    div {
        /* 设置与div元素相关联的盒子模型的左外边距 */
        margin-left: 30%;
        /* 设置div元素的顶部外边距 */
        margin-top: 10px;
    }
  4. 用JavaScript代码:给全选按钮绑定鼠标单击事件

    document.getElementById("selectAll").onclick = function() {
        // 通过标签name值,获取table标签中所有的checkbox对象
        var checkBoxObject = document.getElementsByName("cb");
        // 遍历
        for (var i = 0; i < checkBoxObject.length; i++) {
            // 设置每一个checkbox的状态为选中 checked
            checkBoxObject[i].checked = true;
        }
    };
  5. 用JavaScript代码:给全不选按钮绑定鼠标单击事件

    document.getElementById("unSelectAll").onclick = function() {
        // 通过标签name值,获取table标签中所有的checkbox对象
        var checkBoxObject = document.getElementsByName("cb");
        // 遍历
        for (var i = 0; i < checkBoxObject.length; i++) {
            // 设置每一个checkbox的状态为选中 checked
            checkBoxObject[i].checked = false;
        }
    };
  6. 用JavaScript代码:为表头勾选按钮绑定鼠标单击事件

    document.getElementById("firstCb").onclick = function() {
        // 获取所有的checkbox
        var checkBoxObject = document.getElementsByName("cb");
        // 遍历
        for (var i = 0; i < checkBoxObject.length; i++) {
            // 设置每一个cb的状态和第一个cb的状态一样
            checkBoxObject[i].checked =  this.checked;
        }
    };
  7. 用JavaScript代码:给所有tr绑定鼠标移到元素之上和移出元素事件

    var trs = document.getElementsByTagName("tr");
    // 遍历
    for (var i = 0; i < trs.length; i++) {
        // 移到元素之上
        trs[i].onmouseover = function(){
            this.className = "over";
        };
    
        // 移出元素
        trs[i].onmouseout = function(){
            this.className = "out";
        };
    }

    用CSS样式,对该事件进行描述

    .out{
        background-color: white;
    }
    .over{
        background-color: pink;
    }

具体实现代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格信息勾选</title>
    <style>
        table {
            border: 1px solid;
            width: 500px;
            margin-left: 30%;
        }
        td,th{
            border: 1px solid;
            text-align: center;
        }
        div {
            margin-left: 30%;
            margin-top: 10px;
        }
        .out{
            background-color: white;
        }
        .over{
            background-color: pink;
        }
    </style>
    <script>
        window.onload = function () {
            document.getElementById("selectAll").onclick = function() {
                var checkBoxObject = document.getElementsByName("cb");
                for (var i = 0; i < checkBoxObject.length; i++) {
                    checkBoxObject[i].checked = true;
                }
            };

            document.getElementById("unSelectAll").onclick = function() {
                var checkBoxObject = document.getElementsByName("cb");
                for (var i = 0; i < checkBoxObject.length; i++) {
                    checkBoxObject[i].checked = false;
                }
            };

            document.getElementById("selectReverse").onclick = function() {
                var checkBoxObject = document.getElementsByName("cb");
                for (var i = 0; i < checkBoxObject.length; i++) {
                    checkBoxObject[i].checked = !checkBoxObject[i].checked;
                }
            };

            document.getElementById("firstCb").onclick = function() {
                var checkBoxObject = document.getElementsByName("cb");
                for (var i = 0; i < checkBoxObject.length; i++) {
                    checkBoxObject[i].checked =  this.checked;
                }
            };

            var trs = document.getElementsByTagName("tr");
            for (var i = 0; i < trs.length; i++) {
                trs[i].onmouseover = function(){
                    this.className = "over";
                };
                trs[i].onmouseout = function(){
                    this.className = "out";
                };
            }
        }
    </script>
</head>
<body>
<table>
    <caption>学生信息表</caption>
    <tr>
        <th><input type="checkbox" name="cb" id="firstCb"></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>
</table>
<div>
    <input type="button" id="selectAll" value="全选">
    <input type="button" id="unSelectAll" value="全不选">
    <input type="button" id="selectReverse" value="反选">
</div>

</body>
</html>

原文地址:https://www.cnblogs.com/liyihua/p/12398325.html

时间: 2024-07-30 19:49:53

HTML + CSS + JavaScript 实现勾选动态表格中的记录的相关文章

获取每个勾选的checkbox中的value值

<!--获取每个勾选的checkbox中的value值-->  $.each($('input:checkbox:checked'),function(){                window.alert("你勾选了:"+ $('input[type=checkbox]:checked').length+"个checkbox,其中每个的value值是:"+$(this).val());            }); 原文地址:https://ww

JavaScript全部勾选所有复选框

本例主要说明如何使用JavaScript实现全选功能.效果图如下 点击"全选"前 点击"全选"后 代码如下: <html> <head> <title>全部勾选所有复选框</title> <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/> <scripttype="tex

JavaScript基础 rows,cells 得到表格中所有单元格的内容

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

jQuery获取动态表格中checkbox被选中一行的属性数据

http://www.jianshu.com/p/0ec66caf4c40 jQuery获取表格中checkbox被选中一行的属性数据

jqgrid 表格中筛选条件的多选下拉,树形下拉 ;文本框清除插件;高级查询多条件动态筛选插件

/** * @@desc 文本框清除按钮,如果isAutoWrap为false当前文本框父级必须是relative定位,boostrap参考input-group * @@author bear.LEE <571115139#qq.com> * @@since 2018-08-21 **/ ; (function ($) { $.fn.extend({ addClearBtn: function (options, $o) { var deft = { symbolClass: "f

HTML &amp; CSS &amp; JavaScript 从一个表格到一个灰阶颜色表 03

工具1:HBuilder X 1.9.9.20190522 工具2:火狐浏览器 67.0.4 (64 位) 其实,我还想使用表格,做一个这样的颜色表,如下图所示: 如果按照之前的做法,把每一种颜色都列举出来,估计做完上面这个颜色表,估计人都废了. 为了解决这个重复性的问题,我们必须引入另一种语言:JavaScript 为何学习 JavaScript? JavaScript 是 web 开发者必学的三种语言之一: HTML 定义网页的内容 CSS 规定网页的布局 JavaScript 对网页行为进

dev 表格添加复选框 ,可以勾选多行

this.repositoryItemCheckEdit1.QueryCheckStateByValue += new DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventHandler(re3_QueryCheckStateByValue); //判断表格的数据勾选复选框 void re3_QueryCheckStateByValue(object sender, DevExpress.XtraEditors.Controls.

javascript技巧篇(1) - javascript实现动态表格的三个重要方法

要实现动态表格,首先需要掌握javascript提供的3个非常重要的方法 (1)使用insertRow()方法添加表格行数.在javascript中增加表格的行,首先需要确定新增行插入表格的位置,然后执行插入操作. var table=document.getElementById("mytable");//取得表格对象 var  index=table.rows.length;//取得表格的行数 var nextRow =table.insertRow(index);//取得新插入行

HTML &amp; CSS &amp; JavaScript 从一个表格到一个灰阶颜色表 04

工具1:HBuilder X 1.9.9.20190522 工具2:火狐浏览器 67.0.4 (64 位) 目前,我们已经将一些行和列插入到表格中,并设置单元格的背景颜色,显示 RGB 值等. 例 7:最后,我们需要将表头插入到表格中.基于上一个例子,我们再加入一些 JavaScript 代码. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title