注册 登录
编程论坛 JavaScript论坛

请大家帮忙修改这段代码,实现点击后改变一行的颜色

wys811116 发布于 2009-10-21 18:13, 667 次点击

程序代码:
<html>
<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") return
var 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>
</html>

这段代码实现了鼠标点击后改变一列的颜色 ,可是我想点击后改变一行颜色,请大家帮忙看看,应该怎么改,谢谢

[ 本帖最后由 wys811116 于 2009-10-21 18:25 编辑 ]
1 回复
#2
aspic2009-10-22 09:36
程序代码:
<html>
<body>
<table onclick="SetColor(event)" id="_t">
    <tr>
        <td>11</td>
        <td>12</td>
        <td>13</td>
        <td>14</td>
    </tr>                                                                          
    <tr>                                                                           
        <td>21</td>
        <td>22</td>
        <td>23</td>
        <td>24</td>
    </tr>                                                                          
    <tr>                                                                           
        <td>31</td>
        <td>32</td>
        <td>33</td>
        <td>34</td>
    </tr>                                                                          
    <tr>                                                                           
        <td>41</td>
        <td>42</td>
        <td>43</td>
        <td>44</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
    };
    obj = obj.parentNode;
    var tr=document.getElementById('_t').getElementsByTagName("tr");
    for(var i = 0; i < tr.length; i++) {
        tr[i] == obj ? tr[i].bgColor = '#ff0000' : tr[i].bgColor = ''
    }
}
</script>
</body>
</html>
这个不是更简单~

[ 本帖最后由 aspic 于 2009-10-22 09:38 编辑 ]
1