Jquery 实现table样式的设定


Posted in Javascript onJanuary 28, 2015

上一篇我们使用jquery实现checkbox的全选,得到了一些朋友的建议,其中插件的定义我的确不太清楚,也闹了个笑话,有些朋友建议我去看《锋利的Jquery》,说实话正在看了。由于正在学习中,我就想把项目中经常要用的jquery效果自己写成通用方法,可以在大家的帮助下完善这些方法,也可以让不会的了解到一种做法,最后形成自己的Jquery 方法库,方便以后的使用,这些例子都是我自己写的,没有参考,所以有很多地方需要改进。

1:为什么要写这个方法

在项目中,一些table都要设置样式,为了样式的美观,表头是一个样式,奇数行一个样式,偶数行一个样式。当鼠标经过的时候颜色变化,鼠标离开时颜色恢复,这就有了这样方法。

2:实现过程

js文件xs_table_css.js

$(document).ready(function () {

    var xs_table_css = "xs_table"; //获取table的css

    var xs_table_th_css = "xs_table_th"; //table 的th样式

    var xs_table_even_css = "xs_table_even"; //table的偶数行css

    var xs_table_odd_css = "xs_table_odd"; //table的奇数行css

    var xs_table_select_css = "xs_table_select"; //table选择行的样式

    var xs_table = "table." + xs_table_css;

    $(xs_table).each(function () {

        $(this).children().children().has("th").addClass(xs_table_th_css); //表头

        var tr_even = $(this).children().children(":even").has("td"); //数据偶数行

        var tr_odd = $(this).children().children(":odd").has("td"); //数据奇数行

        tr_even.addClass(xs_table_even_css);

        tr_odd.addClass(xs_table_odd_css);

        tr_even.mouseover(function () {

            $(this).removeClass(xs_table_even_css);

            $(this).addClass(xs_table_select_css);

        });

        tr_even.mouseout(function () {

            $(this).removeClass(xs_table_select_css);

            $(this).addClass(xs_table_even_css);

        });

        tr_odd.mouseover(function () {

            $(this).removeClass(xs_table_odd_css);

            $(this).addClass(xs_table_select_css);

        });

        tr_odd.mouseout(function () {

            $(this).removeClass(xs_table_select_css);

            $(this).addClass(xs_table_odd_css);

        });

    });

});

样式文件xs_table.css

.xs_table

{

}

.xs_table_th

{

    height: 50px;

    background-color: #C0C0C0;

}

.xs_table_even

{

    height: 50px;

    background-color: #F0F0F0;

}
.xs_table_odd

{

    height: 50px;

    background-color: #FFFFFF;

}

.xs_table_select

{

    height: 50px;

    background-color: #D9D9D9;

}

页面文件xs_table_css.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title></title>

    <link href="xs_table.css" rel="stylesheet" type="text/css" />

    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js" type="text/javascript">

    </script>

    <script src="xs_table_css.js" type="text/javascript"></script>

</head>

<body>

<table class="xs_table" width="800px">

<tbody >

<tr><th>headone</th><th>headTwo</th></tr>

<tr><td>第一行</td><td>111111111</td></tr>

<tr><td>第二行</td><td>222222222</td></tr>

<tr><td>第三行</td><td>333333333</td></tr>

<tr><td>第四行</td><td>444444444</td></tr>

</tbody>

</table>

<br />

<br />

<table class="xs_table" width="800px">

<tr><th>headone</th><th>headTwo</th></tr>

<tr><td>第一行</td><td>111111111</td></tr>

<tr><td>第二行</td><td>222222222</td></tr>

<tr><td>第三行</td><td>333333333</td></tr>

<tr><td>第四行</td><td>444444444</td></tr>

</table>

</body>

</html>

3:方法说明

  (1)mouseover和mouseout要先移除上次的css,不然会出现样式叠加

  (2)找tr时注意tbody,虽然页面上没有tbody标签,但是默认会有这个子元素

  (3)奇偶行要去除th,只找td的

Javascript 相关文章推荐
js 图片随机不定向浮动的实现代码
Jul 02 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
Aug 13 Javascript
AngularJS基础知识
Dec 21 Javascript
Javascript访问器属性实例分析
Dec 30 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
理解javascript中的原型和原型链
Jul 30 Javascript
jquery Easyui快速开发总结
Aug 20 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
JS限制输入框输入的实现代码
Jul 02 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
Jul 31 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
javascript实现一款好看的秒表计时器
Sep 05 Javascript
Jquery 实现checkbox全选方法
Jan 28 #Javascript
AngularJS实现表单验证
Jan 28 #Javascript
jQuery制作简单柱状图实例
Jan 28 #Javascript
js分页工具实例
Jan 28 #Javascript
js制作简易年历完整实例
Jan 28 #Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
Jan 28 #Javascript
调试JavaScript中正则表达式中遇到的问题
Jan 27 #Javascript
You might like
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
利用jquery写的左右轮播图特效
2014/02/12 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
Javascript函数的参数
2015/07/16 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python构建自定义回调函数详解
2017/06/20 Python
Python 多核并行计算的示例代码
2017/11/07 Python
python将list转为matrix的方法
2018/12/12 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
python频繁写入文件时提速的方法
2019/06/26 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
Python多线程thread及模块使用实例
2020/04/28 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
医学实习生自我鉴定
2013/12/12 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL