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 基础问答三
Dec 03 Javascript
JS window.opener返回父页面的应用
Oct 24 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
May 30 Javascript
JavaScript中Date.toSource()方法的使用教程
Jun 12 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
Mar 11 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
vue.js入门教程之计算属性
Sep 01 Javascript
Angularjs的启动过程分析
Jul 18 Javascript
详解vue-cli 接口代理配置
Dec 13 Javascript
从零开始搭建一个react项目开发
Feb 09 Javascript
layui 对table中的数据进行转义的实例
Sep 12 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
Jul 13 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实现定时任务的五种方法
2016/07/25 PHP
php实现留言板功能
2017/03/05 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
python根据出生日期获得年龄的方法
2015/03/31 Python
小小聊天室Python代码实现
2016/08/17 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
python实现简易学生信息管理系统
2020/04/05 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
法学研究生自我鉴定范文
2013/12/04 职场文书
教师自荐信范文
2013/12/09 职场文书
低碳环保倡议书
2014/04/14 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
党建目标管理责任书
2014/07/25 职场文书
学校端午节活动方案
2014/08/23 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书