firefox兼容<body>
<table onclick="SetColor(event)" id="_t">
<tr>
<td>dd</td><td>dd</td><td>dd</td><td>dd</td>
</tr>
<tr>
<td>dd</td><td>dd</td><td>dd</td><td>dd</td>
</tr>
<tr>
<td>dd</td><td>dd</td><td>dd</td><td>dd</td>
</tr>
<tr>
<td>dd</td><td>dd</td><td>dd</td><td>dd</td>
</tr>
</table>
<script tyle="text/javascript">
function SetColor(e)
{
 if (!e) e = window.event;
 var obj
 if(window.event)
 obj = e.srcElement
 else
 obj = e.target
 if(obj.tagName != "TD") returnvar oldTD = obj
 while( obj.tagName != "TR")
 obj = obj.parentNode
 var i
 for(i = 0;i<obj.cells.length;i++)
 {
  if(obj.cells[i] == oldTD) break
 }
 var table = document.getElementById("_t")
 for(j = 0;j<table.rows.length;j++)
 {  table.rows[j].cells[i].bgColor = table.rows[j].cells[i].bgColor=="#ff0000"?"#ffffff":"#ff0000"
 }
}
</script>
</body>

解决方案 »

  1.   

    支持交替颜色<body>
    <table onclick="SetColor(event)" id="_t">
    <tr>
    <td>dd</td><td bgcolor="#0099ff">dd</td><td>dd</td><td bgcolor="#dedede">dd</td>
    </tr>                                                                           
    <tr>                                                                            
    <td>dd</td><td bgcolor="#0099ff">dd</td><td>dd</td><td bgcolor="#dedede">dd</td>
    </tr>                                                                           
    <tr>                                                                            
    <td>dd</td><td bgcolor="#0099ff">dd</td><td>dd</td><td bgcolor="#dedede">dd</td>
    </tr>                                                                           
    <tr>                                                                            
    <td>dd</td><td bgcolor="#0099ff">dd</td><td>dd</td><td bgcolor="#dedede">dd</td>
    </tr>                                                                           
    </table>
    <script tyle="text/javascript">
    var oldClr = new Array()
    function SetColor(e)
    {
     if (!e) e = window.event;
     var obj
     if(window.event)
     obj = e.srcElement
     else
     obj = e.target
     
    if(obj.tagName != "TD") returnvar oldTD = obj
     while( obj.tagName != "TR")
     obj = obj.parentNode
     var i
     for(i = 0;i<obj.cells.length;i++)
     {
      if(obj.cells[i] == oldTD) break
     }
     var table = document.getElementById("_t")
     for(j = 0;j<table.rows.length;j++)
     {
      table.rows[j].cells[i].bgColor = table.rows[j].cells[i].bgColor==oldClr[i]?"#ff0000":oldClr[i]
     }
    }window.onload = function()
    {
    var table = document.getElementById("_t")
    for(j = 0;j<table.rows[0].cells.length;j++)
    {
    oldClr[j] = table.rows[0].cells[j].bgColor
    }
    }</script>
    </body>
      

  2.   

    <body>
    <table onclick="SetColor(event)" id="_t">
    <tr>
    <td>dd</td><td bgcolor="#0099ff">dd</td><td>dd</td><td bgcolor="#dedede">dd</td>
    </tr>                                                                           
    <tr>                                                                            
    <td>dd</td><td bgcolor="#0099ff">dd</td><td>dd</td><td bgcolor="#dedede">dd</td>
    </tr>                                                                           
    <tr>                                                                            
    <td>dd</td><td bgcolor="#0099ff">dd</td><td>dd</td><td bgcolor="#dedede">dd</td>
    </tr>                                                                           
    <tr>                                                                            
    <td>dd</td><td bgcolor="#0099ff">dd</td><td>dd</td><td bgcolor="#dedede">dd</td>
    </tr>                                                                           
    </table>
    <script tyle="text/javascript">
    var oldClr = new Array()
    function SetColor(e)
    {
     if (!e) e = window.event;
     var obj
     if(window.event)
     obj = e.srcElement
     else
     obj = e.target
     
    if(obj.tagName != "TD") returnvar oldTD = obj
     while( obj.tagName != "TR")
     obj = obj.parentNode
     var i
     for(i = 0;i<obj.cells.length;i++)
     {
      if(obj.cells[i] == oldTD) break
     }
     var table = document.getElementById("_t")
     for(j = 0;j<table.rows.length;j++)
     {
      //如果要删除其它列的颜色,请加上下面的3行
      for(m = 0;m < table.rows[j].cells.length;m++)
      {
      table.rows[j].cells[m].bgColor = oldClr[m]
      }
     
       table.rows[j].cells[i].bgColor = table.rows[j].cells[i].bgColor==oldClr[i]?"#ff0000":oldClr[i]
     }
    }window.onload = function()
    {
    var table = document.getElementById("_t")
    for(j = 0;j<table.rows[0].cells.length;j++)
    {
    oldClr[j] = table.rows[0].cells[j].bgColor
    }
    }</script>
    </body>
      

  3.   

    单元格里面如果放 input对象的text类型的话,直接操作input的单击事件,然后写一个javascript函数,参数传 this,函数中判断,
    若此对象的底色为红色,变原来的颜色
    若此对象的底色不为红色,变为红色问个问题,如果获得焦点的话,需要和单击一样吗?比如用tab键跳转。。
      

  4.   

    表格中没有input,所以不需要获得焦点