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 相关文章推荐
Prototype使用指南之selector.js说明
Oct 26 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
Nov 19 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
angularjs实现与服务器交互分享
Jun 24 Javascript
JavaScript中的冒泡排序法
Aug 03 Javascript
Vue 2.0 服务端渲染入门介绍
Mar 29 Javascript
jQuery:unbind方法的使用详解
Aug 14 jQuery
layer ui 导入文件之前传入数据的实例
Sep 23 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
Nov 07 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
Dec 04 Javascript
微信小程序 button样式设置为图片的方法
Jun 19 Javascript
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
Jun 29 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高级对象构建 工厂模式的使用
2012/02/05 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
vue el-table实现自定义表头
2019/12/11 Javascript
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
Python实现Dijkstra算法
2018/10/17 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
python热力图实现简单方法
2021/01/29 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
人事行政主管岗位职责
2013/12/22 职场文书
2014年征兵标语
2014/06/20 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
社区重阳节活动总结
2015/03/24 职场文书
十八大观后感
2015/06/12 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书