JavaScript实现的斑马线表格效果【隔行变色】


Posted in Javascript onSeptember 18, 2017

本文实例讲述了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>

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 相关文章推荐
IE8下关于querySelectorAll()的问题
May 13 Javascript
js自执行函数的几种不同写法的比较
Aug 16 Javascript
使用jQuery清空file文件域的解决方案
Apr 12 Javascript
Windows8下搭建Node.js开发环境教程
Sep 03 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
jQuery实现可展开合拢的手风琴面板菜单
Sep 15 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
Nov 29 Javascript
Bootstrap模态框禁用空白处点击关闭
Oct 20 Javascript
微信小程序 WebSocket详解及应用
Jan 21 Javascript
关于使用js算总价的问题
Jun 23 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
Dec 03 Javascript
JS中的算法与数据结构之集合(Set)实例详解
Aug 20 Javascript
js实现可以点击收缩或张开的悬浮窗
Sep 18 #Javascript
javascript流程控制语句集合
Sep 18 #Javascript
20170918 前端开发周报之JS前端开发必看
Sep 18 #Javascript
Angular中的$watch方法详解
Sep 18 #Javascript
jQuery实现的表格前端排序功能示例
Sep 18 #jQuery
node.js中使用Export和Import的方法
Sep 18 #Javascript
inner join 内联与left join 左联的实例代码
Sep 18 #Javascript
You might like
PHP中常用的输出函数总结
2014/09/22 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
smarty表格换行实例
2014/12/15 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
搭建vue开发环境
2018/07/19 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
python zip文件 压缩
2008/12/24 Python
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
python实现可变变量名方法详解
2019/07/01 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
密封类可以有虚函数吗
2014/08/11 面试题
高三毕业典礼主持词
2014/03/27 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL
python解析照片拍摄时间进行图片整理
2022/07/23 Python