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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM