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 相关文章推荐
用JavaScript计算在UTF-8下存储字符串占用字节数
Aug 08 Javascript
jquery中animate动画积累的解决方法
Oct 05 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
Aug 21 Javascript
AngularJS转换响应内容
Jan 27 Javascript
JavaScript中Object.prototype.toString方法的原理
Feb 24 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
微信小程序新增的拖动组件movable-view使用教程
May 20 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
Oct 20 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
Jul 10 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
Apr 28 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
Jul 22 Javascript
Openlayers绘制地图标注
Sep 28 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
PHP生成静态页
2006/11/25 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
PHP6新特性分析
2016/03/03 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
深入理解JavaScript中的对象
2015/06/04 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
2019/05/16 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
github配置使用指南
2014/11/18 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
Python拼接字符串的7种方式详解
2020/03/19 Python
python数据分析:关键字提取方式
2020/02/24 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
一套.net面试题及答案
2016/11/02 面试题
项目经理的岗位职责
2013/11/23 职场文书
少先队入队活动方案
2014/02/08 职场文书
公司担保书范文
2014/05/21 职场文书
机关保密承诺书
2014/06/03 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书