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优先加载笔记代码
Sep 30 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
Feb 06 Javascript
javascript 函数声明与函数表达式的区别介绍
Oct 05 Javascript
js处理表格对table进行修饰
May 26 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
深入理解Ajax的get和post请求
Jun 02 Javascript
用jmSlip编写移动端顶部日历选择控件
Oct 24 Javascript
Angular4学习之Angular CLI的安装与使用教程
Jan 04 Javascript
动态Axios的配置步骤详解
Jan 12 Javascript
Vue页面骨架屏注入方法
May 13 Javascript
Vue.js 中的 v-cloak 指令及使用详解
Nov 19 Javascript
解决vant中 tab栏遇到的坑 van-tabs
Nov 04 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遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP简单创建压缩图的方法
2016/08/24 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
模拟select的代码
2011/10/19 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Python 3中print函数的使用方法总结
2017/08/08 Python
python3图片文件批量重命名处理
2019/10/31 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
你对IPv6了解程度
2016/02/09 面试题
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
销售团队激励口号
2014/06/06 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
2015入党自传书范文
2015/06/26 职场文书
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL