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中的包装对象介绍
Jan 27 Javascript
js实现checkbox全选、不选与反选的方法
Feb 09 Javascript
jQuery简单几行代码实现tab切换
Mar 10 Javascript
javascript每日必学之继承
Feb 23 Javascript
js 求时间差的实现代码
Apr 26 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
jQuery实现的网页换肤效果示例
Sep 20 Javascript
浅析js的模块化编写 require.js
Dec 07 Javascript
js截取字符串功能的实现方法
Sep 27 Javascript
JS正则表达式常见用法实例详解
Jun 19 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
Jun 21 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
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
mysql数据库差异比较的PHP代码
2012/02/05 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
php通过字符串调用函数示例
2014/03/02 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
javascript操作符&quot;!~&quot;详解
2015/02/10 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
ajax异步请求详解
2017/01/06 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
Vue请求java服务端并返回数据代码实例
2019/11/28 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
python赋值操作方法分享
2013/03/23 Python
python计算时间差的方法
2015/05/20 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
python 写一个水果忍者游戏
2021/01/13 Python
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
企业安全生产标语
2014/06/06 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
Python采集股票数据并制作可视化柱状图
2022/04/04 Python