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>1td>
            <td>令狐冲td>
            <td>td>
            <td><a href="javascript:void(0);">删除a>td>
        tr>
        <tr>
            <td><input type="checkbox"  name="cb" >td>
            <td>2td>
            <td>任我行td>
            <td>td>
            <td><a href="javascript:void(0);">删除a>td>
        tr>
        <tr>
            <td><input type="checkbox"  name="cb" >td>
            <td>3td>
            <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>1td>
        <td>令狐冲td>
        <td>td>
        <td><a href="javascript:void(0);">删除a>td>
    tr>
    <tr>
        <td><input type="checkbox"  name="cb" >td>
        <td>2td>
        <td>任我行td>
        <td>td>
        <td><a href="javascript:void(0);">删除a>td>
    tr>
    <tr>
        <td><input type="checkbox"  name="cb" >td>
        <td>3td>
        <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>

 

          

你可能感兴趣的:(HTML + CSS + JavaScript 实现勾选动态表格中的记录)