JavaScript实现表格行高亮变色

作者:页面旅途

时间:2026-10-24

浏览:373

本文介绍如何使用JavaScript实现表格主体的动态变色效果。通过获取表格行元素,分别绑定onmouseover和onmouseout事件,在鼠标经过时添加背景颜色类名,离开时移除类名。该方法避免了排他思想可能导致的样式残留问题,使选中行高亮显示更直观。

文章目录

本文提供了一段JavaScript代码示例,用于实现表格的动态变色功能,供读者参考学习。

表格结构与变色效果

HTML表格通常由表头和表格主体两部分组成。

当鼠标移动到表格主体的某一行时,该行会改变颜色,以此区分当前选中的行,让用户更清晰地看到当前操作的是哪一行。

实现思路与代码逻辑

实现该功能的基本思路如下:

1、获取表格主体的所有行 2、css定义一个背景颜色类 for循环遍历,将每行都分别绑定onmouseover、onmouseout事件, onmouseover(鼠标经过)- - - 该行类名赋值定义好的背景颜色类名 onmouseout(鼠标离开)- - - 该行类名赋值空

需要注意的是,这里不需要使用排他思想。如果使用排他思想,鼠标离开最后一行时,该行可能会残留颜色,导致显示异常。

具体代码示例如下:

完整代码示例


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表格动态变色</title>
    <style>
        th {
            background-color: pink;
        }
        
        .bg {
            background-color: green;
        }
    </style>
</head>

<body>
    <table border="1" cellpadding="8" cellspacing="0" align="center">
        <thead>
            <tr>
                <th>水果</th>
                <th>喜欢程度</th>
                <th>季节</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>苹果</td>
                <td>☆☆☆☆☆</td>
                <td>四季</td>
            </tr>
            <tr>
                <td>香蕉</td>
                <td>☆☆☆</td>
                <td>四季</td>
            </tr>
            <tr>
                <td>葡萄</td>
                <td>☆☆☆</td>
                <td>夏季</td>
            </tr>
            <tr>
                <td>榴莲</td>
                <td>☆☆☆☆☆☆☆</td>
                <td>夏季</td>
            </tr>
            <tr>
                <td>芒果</td>
                <td>☆☆☆☆☆☆☆</td>
                <td>夏季</td>
            </tr>
            <tr>
                <td>西瓜</td>
                <td>☆☆☆☆☆</td>
                <td>夏季</td>
            </tr>
        </tbody>
    </table>
    <script>
        var tr = document.querySelector('tbody').querySelectorAll('tr');
        for (var i = 0; i < tr.length; i++) {
            tr[i].onmouseover = function() {
                /* 排他算法
                for (var i = 0; i < tr.length; i++) {
                    tr[i].className = '';
                } */
                this.className = 'bg';
            }
            tr[i].onmouseout = function() {
                this.className = '';
            }
        }
    </script>
</body>

</html>

页面运行效果如图所示:

表格结构与变色效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章