<tbody class="tableBody" >
<tr class="odd" >
<td>
<input type="checkbox" name="patientIds" value="123" 
onclick="changeBg(this);" /> </td>
<td>123</td>
<td>7</td>
<td>123</td>
<td width="120px" >2012-12-18</td>
<td>1231312.15</td>
<td>0月</td>
       </tr>
</tbody>我想要的效果是点击每一行的这个checkbox,通过这个函数changeBg,改变这一行TR的背景颜色,
真实数据有多行记录,无法确定多少行。
该怎么传参呢? this.parent?

解决方案 »

  1.   

    <table>
    <tbody class="tableBody" >
    <tr class="odd" >
    <td>
    <input type="checkbox" name="patientIds" value="123" 
    onclick="changeBg(this);" />
    </td>
    <td>123</td>
    <td>7</td>
    <td>123</td>
    <td width="120px" >2012-12-18</td>
    <td>1231312.15</td>
    <td>0月</td>
    </tr>
    </tbody>
    </table>
    <script>
    function changeBg(t){
    t.parentNode.parentNode.style.background = 'red';
    }
    </script>
      

  2.   

    var table=document.getElementById("table"); 
    alert(table.rows.length);
    }
      

  3.   

    function changeBg(obj){
    if(obj.checked){
    obj.parentNode.parentNode.style.background = 'red';
    }
    else{
    obj.parentNode.parentNode.style.background = 'none';
    }
    }
      

  4.   

    我是这样用的
    1.给table 加上id 如:id="vaTab" ,复选框加上onclick="selectTR(this)"
    2.js 如下var selectedTr = null;
    function selectTR(obj){
     var sTable = document.getElementById("vaTab")     
      for(var i = 1;i<sTable.rows.length; i++){
       if(sTable.rows[i] != obj){
          sTable.rows[i].style.removeAttribute("backgroundColor"); 
       }else{
          obj.style.backgroundColor='#DAE6FF';
          selectedTr=obj; 
       }
      }
    }