JS实现的样式切换功能tableCSS实例
本文实例分析了JS实现的样式切换功能tableCSS。分享给大家供大家参考,具体如下:
把前阵子写的JQ插件函数(alterBgColor)改写成不基于JQ的代码,还添加了一个click样式效果
代码风格还是按照JQ插件风格来写,使用了闭包来循环设置TR元素的样式
functionTableCss(options){ //如果没参数,就退出 if(arguments.length<1||!document.getElementById(options.tableName)){return;} //参数及默认参数 varoptions={ tableName:options.tableName, evenClass:options.evenClass||"tr_even", oddClass:options.oddClass||"tr_odd", clickClass:options.clickClass||"tr_click", hoverClass:options.hoverClass||"tr_hover" } //根据ID找到表格元素 vartableName=document.getElementById(options.tableName); vartr=tableName.getElementsByTagName("tr"); //对TR元素循环设置 for(vari=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){returnfalse;} else{tr[k].className=options.hoverClass;} } tr[k].onmouseout=function(){ if(tr[k].className==options.clickClass){returnfalse;} 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, #tb1td{border:1pxsolid#000;border-collapse:collapse} .tr_even{background:#CCC;} .tr_odd{background:#9FF;} .tr_hover{background:#FF6;} .tr_click{background:#00F;} --> </style> <tableid="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程序设计有所帮助。