Allora, ti faccio un esempio con mark-up generico così tu te lo adatti.

codice:
XHTML

<table id="voti">

   <caption>I voti della classe 1A</caption>

   <thead>
      <tr>
         <th scope="col">Nome</th>
         <th scope="col">Voto</th>
         <th scope="col">Seleziona</th>
      </tr>
   </thead>

   <tbody>
      <tr>
         <td><label for="aldo">Aldo</label></td>
         <td>10</td>
         <td><input id="aldo" name="aldo" value="aldo" type="checkbox" /></td>
      </tr>
      <tr>
         <td><label for="bruno">Bruno</label></td>
         <td>8</td>
         <td><input id="bruno" name="bruno" value="bruno" type="checkbox" /></td>
      </tr>
      
   </tbody>

</table>


CSS

.riga_selezionata
{
   background-color:#CCC;
}


Javascript

window.onload = function()
{
   var voti = document.getElementById('voti').getElementsByTagName('tbody').item(0)
   var checkboxes = voti.getElementsByTagName('input')

   for (var i = 0; i < checkboxes.length; i++)
   {
      checkboxes.item(i).onclick = function()
      {
         if ( this.checked )
         {
            var riga = this.parentNode.parentNode
            riga.className = 'riga_selezionata'
         }
         else
         {
            var riga = this.parentNode.parentNode
            riga.className = ' '
         }
      }
   }
}
Lo script funziona per un numero arbitrario (potenzialmente infinito) di righe in quanto è slegato dalla struttura XHTML.