JS实现的样式切换功能tableCSS实例
程序员文章站
2023-01-31 10:29:50
本文实例分析了js实现的样式切换功能tablecss。分享给大家供大家参考,具体如下:
把前阵子写的jq插件函数(alterbgcolor )改写成不基于jq的代码,还添...
本文实例分析了js实现的样式切换功能tablecss。分享给大家供大家参考,具体如下:
把前阵子写的jq插件函数(alterbgcolor )改写成不基于jq的代码,还添加了一个click样式效果
代码风格还是按照jq插件风格来写,使用了闭包来循环设置tr元素的样式
function tablecss(options){ //如果没参数,就退出 if(arguments.length < 1 || !document.getelementbyid(options.tablename) ) { return ;} //参数及默认参数 var options = { tablename : options.tablename, evenclass : options.evenclass || "tr_even", oddclass : options.oddclass || "tr_odd", clickclass : options.clickclass || "tr_click", hoverclass: options.hoverclass || "tr_hover" } //根据id找到表格元素 var tablename = document.getelementbyid(options.tablename); var tr = tablename.getelementsbytagname("tr"); //对tr元素循环设置 for(var i=0, len=tr.length; i<len; i++){ //用了闭包 (function(k){ //设置奇偶行样式 tr[k].classname = (k%2==0)? options.oddclass : options.evenclass; //点击样式 tr[k].onclick = function(){ if (tr[k].classname == options.clickclass){ tr[k].classname = (k%2==0)? options.oddclass : options.evenclass; } else { tr[k].classname = options.clickclass; } } //鼠标hover样式,如果已经是点击样式,则不变化 tr[k].onmouseover = function(){ if(tr[k].classname == options.clickclass ){ return false;} else { tr[k].classname = options.hoverclass;} } tr[k].onmouseout = function(){ if(tr[k].classname == options.clickclass){ return false;} else { tr[k].classname = (k%2==0)? options.oddclass : options.evenclass; } } })(i) } } //调用 tablecss({tablename:"tb1"});
效果很简单,代码也很简单.
只是这句tr[k].classname = (k%2==0)? options.oddclass : options.evenclass;写了三遍,本来是写在一个function里的,但不知道在闭包里那么写会不会影响性能(任务管理器里也没看到有cpu使用率暴涨的情况),最后还是决定这么写,呵呵.
测试代码:
<style> <!-- #tb1, #tb1 td{ border:1px solid #000;border-collapse:collapse} .tr_even { background:#ccc;} .tr_odd { background:#9ff;} .tr_hover { background:#ff6;} .tr_click { background:#00f;} --> </style> <table id="tb1" cellpadding="1" cellspacing="1"> <tr> <td>123</td> <td>456</td> <td>123</td> <td>456</td> <td>123</td> <td>456</td> </tr> <tr> <td>123</td> <td>456</td> <td>123</td> <td>456</td> <td>123</td> <td>456</td> </tr> <tr> <td>123</td> <td>456</td> <td>123</td> <td>456</td> <td>123</td> <td>456</td> </tr> <tr> <td>123</td> <td>456</td> <td>123</td> <td>456</td> <td>123</td> <td>456</td> </tr> </table>
更多关于javascript相关内容感兴趣的读者可查看本站专题:《javascript切换特效与技巧总结》、《javascript遍历算法与技巧总结》、《javascript查找算法技巧总结》、《javascript动画特效与技巧汇总》、《javascript错误与调试技巧总结》、《javascript数据结构与算法技巧总结》及《javascript数学运算用法总结》
希望本文所述对大家javascript程序设计有所帮助。
上一篇: JQuery获取鼠标进入和离开容器的方向
下一篇: JS实现的简易拖放效果示例