本文介绍如何使用原生JavaScript实现表格的隔行变色效果。通过获取表格元素并遍历行,利用addClass函数交替添加CSS类名,实现斑马线样式。该方法兼容性优于部分框架,适合需要轻量级解决方案的场景。
原生JavaScript实现表格隔行变色代码示例
本文通过一个具体实例,展示了如何利用JavaScript实现表格的隔行变色(即斑马线)效果。内容旨在为读者提供参考,便于在实际开发中借鉴使用。
尽管当前许多前端框架能够轻松实现斑马线效果,且具备不错的兼容性(例如Bootstrap),但不可否认的是,使用原生JavaScript实现的方案在兼容性方面表现最强(前提是浏览器支持或允许执行JavaScript脚本)。因此,本文使用原生JS编写了一个实现表格斑马线效果的示例,供读者参考,如有需要可将其作为脚本积累的一部分。
以下是HTML表格部分的代码结构:
<table>
<thead>
<tr>
<th>Date</th>
<th>City</th>
<th>Venue</th>
</tr>
</thead>
<tbody>
<tr>
<td>2017-06-25</td>
<td>
<abbr title="BeiJing">BJ</abbr>
</td>
<td>Ballroom</td>
</tr>
<tr>
<td>2017-08-02</td>
<td>
<abbr title="ShangHai">SH</abbr>
</td>
<td>Yoyoyo</td>
</tr>
<tr>
<td>2017-11-30</td>
<td>
<abbr title="HangZhou">HZ</abbr>
</td>
<td>NOW~</td>
</tr>
<tr>
<td>2017-11-30</td>
<td>
<abbr title="HangZhou">HZ</abbr>
</td>
<td>NOW~</td>
</tr>
<tr>
<td>2017-11-30</td>
<td>
<abbr title="ShiJiaZhuang">SJZ</abbr>
</td>
<td>NOW~</td>
</tr>
</tbody>
</table>
JavaScript脚本文件 script.js 的内容如下:
function addClass(element, value) {//element:需要添加新样式的元素,value:新的样式
if (!element.className) {
element.className = value;
} else {
newClassName = element.className;
newClassName += " ";
newClassName += value;
element.className = newClassName;
}
}
function stripeTable(){
if(!document.getElementsByTagName("table")) return false;
/*获取table*/
var table = document.getElementsByTagName("table");
/*遍历 为所有表格添加*/
for(var i=0;i<table.length;i++){
/*判断是否为奇数行
* 将第一行设置成true
* */
var odd = true;
var tr = table[i].getElementsByTagName("tr");
/*遍历表格中的每一行*/
for(var j=0;j<tr.length;j++){
if(odd){
addClass(tr[j],"stripe");
/*将下一行设置称false*/
odd = false;
}else{
/*将下一行设置称true*/
odd = true;
}
}
}
}
相关的CSS样式定义如下:
* {
margin: 0;
padding: 0;
}
.stripe{
background-color: #eee;
}
完整的 index.html 页面代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>javascript斑马线表格</title>
<style>
* {
margin: 0;
padding: 0;
}
.stripe{
background-color: #eee;
}
</style>
<script src="script.js"></script>
</head>
<body>
<table>
<thead>
<tr>
<th>Date</th>
<th>City</th>
<th>Venue</th>
</tr>
</thead>
<tbody>
<tr>
<td>2017-06-25</td>
<td>
<abbr title="BeiJing">BJ</abbr>
</td>
<td>Ballroom</td>
</tr>
<tr>
<td>2017-08-02</td>
<td>
<abbr title="ShangHai">SH</abbr>
</td>
<td>Yoyoyo</td>
</tr>
<tr>
<td>2017-11-30</td>
<td>
<abbr title="HangZhou">HZ</abbr>
</td>
<td>NOW~</td>
</tr>
<tr>
<td>2017-11-30</td>
<td>
<abbr title="HangZhou">HZ</abbr>
</td>
<td>NOW~</td>
</tr>
<tr>
<td>2017-11-30</td>
<td>
<abbr title="ShiJiaZhuang">SJZ</abbr>
</td>
<td>NOW~</td>
</tr>
</tbody>
</table>
<script>
stripeTable();
</script>
</body>
</html>
如果您对JavaScript相关内容感兴趣,建议进一步阅读本站专题,包括《JavaScript表格操作技巧大全》、《JavaScript操作DOM技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript查找算法技巧总结》以及《JavaScript错误与调试技巧总结》。
希望本文提供的描述对大家学习JavaScript程序设计有所帮助。