JavaScript实现表格行高亮变色
本文介绍如何使用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>
页面运行效果如图所示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
JS监听滚动事件:回到顶部按钮的显示与隐藏逻辑
2026-11-05 16:19:37
JavaScript怎么读写LocalStorage与SessionStorage
2026-11-05 15:40:11
anime.js 与 GSAP 对比:轻量级项目该怎么选择动画库
2026-11-05 11:24:55
flv.js 与 hls.js 在直播场景下的选型对比
2026-11-05 08:18:52
JavaScript能做什么?前端开发中的作用与应用场景解析
2026-11-04 23:17:54
