需求:实现表格的行颜色间隔显示,如图所示:
当鼠标在某一行时,实现高亮显示,移走则恢复。
实现:
步骤一:绘制表格。
<body>
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>地址</th>
</tr>
<tr >
<td>张三</td>
<td>30</td>
<td>北京</td>
</tr>
<tr>
<td>李四</td>
<td>4</td>
<td>上海</td>
</tr>
<tr>
<td>王武</td>
<td>23</td>
<td>广州</td>
</tr>
<tr>
<td>赵六</td>
<td>27</td>
<td>南京</td>
</tr>
<tr>
<td>周七</td>
<td>25</td>
<td>大连</td>
</tr>
<tr>
<td>孙八</td>
<td>29</td>
<td>铁岭</td>
</tr>
</table>
</body>
步骤二:定义表格样式
将表格样式文件封装到tab.CSS文件中。
则需通过link进行连接。
<linkrel="stylesheet" href="tab.css" />
@charset "utf-8";
/* CSS Document */
table{
border:#CC0033 1px solid;
width:60%;
}
table th{
border:#00FF00 1px solid;
background-color:#FF6699;}
table td{
border:#33FFCC 1px solid;
}
步骤三:定义表格行显示样式
<strong> <style type="text/css">
.one{
background-color:#00FFCC;
}
.two{
background-color:#CC3333;
}
.over{
background-color:#33FF00;
}
</style>
</strong>
步骤四:定义方法:
<script type="text/javascript">
var name;//这个变量用于将进行高亮显示之前的颜色给记录下来。
function trcolor()
{
var tabNode = document.getElementsByTagName("table")[0];//得到table对象
var trs=tabNode.rows;//得到所有的行对象
for(var x=1;x<trs.length;x++)
{
//实现行颜色间隔显示效果。
if(x%2==1) //奇数行,颜色为one这个选择器
trs[x].className ="one";
else
trs[x].className="two";
//实现高亮显示效果。
trs[x].onmouseover =function() //onmoouseover是每个行对象的事件属性,动态的添加事件属性
{
name=this.className; //临时记录高亮之前的颜色
this.className ="over";
};
trs[x].onmouseout =function ()
{
this.className = name;
}
}
}
/*function over(trNode)
{
trNode.className ="over";
}
function out(trNode)
{
trNode.className =name;<p></p><pre name="code" class="html">onmoouseover
这种方法有局限性,如果行比较多,都需要在每一行中加入onmoouseover属性,不采用
}*/
window.onload =trcolor;</script>