代码如下:
不太懂这里的one() 和func() .one不是变量吗?怎么能做函数来用呢?func也是,作为形参。
而且,这里不是有onloadEvent(showtable)这段了吗,应该页面载入后,就自动给表格隔行换色了,所以,我绝对可以去掉那段css的代码,但是,去了后,载入的时候,表格没有隔行换色,为什么呢?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>test</title>
<style language="text/css">
/*第一种颜色*/
#table tr.color1{
background-color:#FFFFFF;
}
/*第二种颜色*/
#table tr.color2{
background-color:#F8F8F8;
}
</style>
<script type="text/javascript">
<!--
function onloadEvent(func){
var one=window.onload
if(typeof window.onload!='function'){
window.onload=func
}
else{
window.onload=function(){
one();
func();
}
}
}
function showtable(){
var tableid='table'; //表格的id
var overcolor='#FCF9D8'; //鼠标经过颜色
var color1='#FFFFFF'; //第一种颜色
var color2='#F8F8F8'; //第二种颜色
var tablename=document.getElementById(tableid)
var tr=tablename.getElementsByTagName("tr")
for(var i=1 ;i<tr.length;i++){
tr[i].onmouseover=function(){
this.style.backgroundColor=overcolor;
}
tr[i].onmouseout=function(){
if(this.rowIndex%2==0){
this.style.backgroundColor=color1;
}else{
this.style.backgroundColor=color2;
}
}
if(i%2==0){
tr[i].className="color1";
}else{
tr[i].className="color2";
}
}
}
onloadEvent(showtable);
-->
</script>
</head>
<body id="" class="" >
<table width="100%" border="0" cellspacing="1" cellpadding="4" class="list" name="table" id="table">
  <thead>
    <tr>
      <th>流程</th>
      <th>启动人</th>
      <th>启动时间</th>
      <th>状态</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
    <tr>
      <td><a href="">测试行</a></td>
      <td>无</td>
      <td>2008-05-09 17:21:04</td>
      <td>结束</td>
    </tr>
  </tbody></table>
</body>
</html>

解决方案 »

  1.   

    多看看教科书!!!!!!!!!!!!!!!!!!!!1.js中function可以作为参数传递,就像c语言的函数指针!!!!
    2.onmouseover,onmouseout可懂??实现的内容是你鼠标移上去换色。而隔行换色是在
    if(i%2==0){
                tr[i].className="color1";
            }else{
                tr[i].className="color2";
            }
    这里调用的是css。
      

  2.   

    function onloadEvent(func){
        var one=window.onload//给one付给一个函数
        if(typeof window.onload!='function'){
            window.onload=func
        }
        else{
            window.onload=function(){
                one();//调用函数
                func();//调用函数
            }
        }js是可以传递函数名称的,就相当于传递了一个函数
    }
      

  3.   

    谢谢了,我明白了,那个js改一下,就可以不用那段css了。
    if(i%2==0){
    tr[i].style.backgroundColor=color1;
    }else{
    tr[i].style.backgroundColor=color2;
    }
      

  4.   

    如果,我改动一下onloadEvent,去掉one();好像也没有影响啊?到底是怎么回事呢?