我有一个表格,如果我在表格的某一行点击一下,使这一行改变颜色,点击别的行的时候,现在的选中行改变颜色,原来的选中行恢复原来的颜色
该如何写js啊

解决方案 »

  1.   

    在<tr>中onmouseover="OnMouseOverTd()" onmouseout="OnMouseOutTd()"
    调用JS中函数即可
    js:function   OnMouseOverTd()
      {
           event.srcElement.parentNode.style.background="#996633";
      }  function   OnMouseOutTd()
      {
           event.srcElement.parentNode.style.background="#cccfff";
      }
      

  2.   


     <table border=1>
     <tr onclick="OnMouseOverTd(this)" id="1"><td> 
     dfdasfdsafdsafdsafdafdsa</td></tr>
      <tr onclick="OnMouseOverTd(this)"  id="2"><td> 
     dfdasfdsafdsafdsafdafdsa</td></tr>
    </table>
    <script>
    function       OnMouseOverTd(obj) { 
    var tr= document.getElementsByTagName("tr");
    if(obj.style.background!="#996633"){
                  obj.style.background="#996633"; 
      for(var i=0;i<tr.length;i++){
    if(tr[i].id!=obj.id){
    document.getElementById(tr[i].id).style.background="#ffffff"; 
    }
      }
    }

    </script>
      

  3.   

    这样好像不太符合要求,我的行是用c标签循环出来的,每行的id都是一样的,只能记录行号,这点不太号处理,谢谢了。等等啊 
      

  4.   

    三楼的代码可以的,把顺序颠倒一下不需要id了,当然id可以自动生成不一样的。var tr=document.getElementsByTagName("tr");
    for(var i=0;i<tr.length;i++){
       tr[i].style.background="#ffffff";
    }
    obj.style.background="#996633"; 
      

  5.   

    问题已解决,谢谢各位。代码拿出来大家分享一下,希望能有帮助<script>
    var obj;
    function selectRec(tr){
    if(obj==null||obj==undefined){
    tr.bgColor="#549FF2";//改变当前选中行的颜色
           }else if(obj!=null){
    if((obj.id)%2==0){
    obj.bgColor='#E6F3FF'
    }else{
    obj.bgColor='';
    }
    tr.bgColor="#549FF2";
      }
    obj = tr;
      }
    </script><c:forEach items="${list}" var="list" varStatus="stauts">    
         <tr nowrap=y align="center" 
         onmouseover="this.className='hand'"
    onmouseout="this.className=''"
    onclick="javascript:selectRec(this);" 
    <c:if test="${stauts.count%2==0}">
                                     bgcolor='#E6F3FF'
                                    </c:if>       
                                    id="<c:out value='${stauts.count}'/>"
                            >
    <td........>.....</td>
    </c:forEach>