前端案例:HTML页面Tab页内表格行数据点击弹出模态框

该代码功能:HTML页面有三个Tab页,可点击切换,鼠标点击各行数据,可以弹出模态框并置顶置灰,鼠标点击模态框外部可关闭模态框

代码示例-该代码由ChatGPT 3.5协助修改完成
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表格展示页面</title>
    <style>
        .tab {
            display: inline-block;
            padding: 10px 20px;
            background-color: #f1f1f1;
            border-radius: 10px 10px 0 0;
            cursor: pointer;
        }
        .tab.active {
            background-color: #ccc;
        }
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            border: 1px solid #ccc;
            padding: 8px;
            text-align: left;
            width: 100px;
        }
        .modal {
            display: none;
            position: fixed;
            z-index: 9999;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            width: 600px;
            height: 400px;
            background-color: #fff;
            border-radius: 5px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
            padding: 20px;
        }
        .modal-background {
            display: none;
            position: fixed;
            z-index: 9998;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.5);
        }

        .close-btn {
            position: absolute;
            top: 10px;
            right: 10px;
            cursor: pointer;
        }
    </style>
    <script>
        function switchTab(index) {
            var tabs = document.getElementsByClassName("tab");
            for (var i = 0; i < tabs.length; i++) {
                tabs[i].classList.remove("active");
            }
            tabs[index].classList.add("active");
            var tables = document.getElementsByTagName("table");
            for (var i = 0; i < tables.length; i++) {
                if (i === index) {
                    tables[i].style.display = "block";
                } else {
                    tables[i].style.display = "none";
                }
            }
        }

        function showModal(row) {
            var rowData = [];
            var cells = row.getElementsByTagName("td");
            for (var i = 0; i < cells.length; i++) {
                rowData.push(cells[i].textContent);
            }
            var modal = document.getElementById("modal");
            var content = document.getElementById("modal-content");
            content.innerHTML = rowData.join("<br>");
            modal.style.display = "block";
            document.getElementById("modal-background").style.display = "block";
        }

        function closeModal() {
            var modal = document.getElementById("modal");
            modal.style.display = "none";
            document.getElementById("modal-background").style.display = "none";
        }

        window.addEventListener("DOMContentLoaded", function() {
            var rows = document.querySelectorAll("table tr");
            for (var i = 0; i < rows.length; i++) {
                rows[i].addEventListener("click", function() {
                    showModal(this);
                });
            }

            var modalBackground = document.getElementById("modal-background");
            modalBackground.addEventListener("click", function(event) {
                if (event.target === modalBackground) {
                    closeModal();
                }
            });
        });
    </script>
</head>
<body>
    <div>
        <div class="tab" onclick="switchTab(0)">Tab 1</div>
        <div class="tab" onclick="switchTab(1)">Tab 2</div>
        <div class="tab" onclick="switchTab(2)">Tab 3</div>
    </div>
    <table id="table1">
        <tr>
            <th>列1</th>
            <th>列2</th>
            <th>列3</th>
            <th>列4</th>
        </tr>
        <tr>
            <td>数据11</td>
            <td>数据22</td>
            <td>数据33</td>
            <td>数据44</td>
        </tr>
        <tr>
            <td>数据12</td>
            <td>数据22</td>
            <td>数据32</td>
            <td>数据42</td>
        </tr>
        <!-- 复制上面的行,修改数据即可 -->
    </table>
    <table id="table2" style="display:none;">
        <tr>
            <th>列1</th>
            <th>列2</th>
            <th>列3</th>
            <th>列4</th>
        </tr>
        <tr>
            <td>数据13</td>
            <td>数据23</td>
            <td>数据33</td>
            <td>数据43</td>
        </tr>
        <tr>
            <td>数据13</td>
            <td>数据23</td>
            <td>数据33</td>
            <td>数据43</td>
        </tr>


        <tr>
            <td>数据13</td>
            <td>数据23</td>
            <td>数据33</td>
            <td>数据43</td>
        </tr>
        <!-- 复制上面的行,修改数据即可 -->
    </table>
    <table id="table3" style="display:none;">
        <tr>
            <th>列1</th>
            <th>列2</th>
            <th>列3</th>
            <th>列4</th>
        </tr>
        <tr>
            <td>数据14</td>
            <td>数据24</td>
            <td>数据34</td>
            <td>数据44</td>
        </tr>
        <!-- 复制上面的行,修改数据即可 -->
    </table>

    <div id="modal" class="modal">
        <div id="modal-content"></div>
        <span class="close-btn" onclick="closeModal()">&times;</span>
    </div>
    <div id="modal-background" class="modal-background"></div>

</body>
</html>

 

阅读剩余
THE END