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 相关文章推荐
ImageFlow可鼠标控制图片滚动
Jan 30 Javascript
javascript Demo模态窗口
Dec 06 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
May 24 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
May 20 Javascript
js生成随机数之random函数随机示例
Dec 20 Javascript
jquery获得当前html页面源码的方法
Jul 14 Javascript
JS实现跟随鼠标的链接文字提示框效果
Aug 06 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
Jul 06 Javascript
微信小程序实现图片压缩功能
Jan 26 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
vue项目中使用scss的方法步骤
May 16 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
Jun 10 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加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
2017/06/11 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
2020/09/04 Javascript
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
python中round函数保留两位小数的方法
2020/12/04 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
使用python实现学生信息管理系统
2021/02/25 Python
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
数学检讨书1000字
2014/02/24 职场文书
新年主持词
2014/03/27 职场文书
个人工作表现评价材料
2014/09/21 职场文书
热情服务标语
2014/10/07 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
收入证明范本
2015/06/12 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript