Data la natura dei dati in questione, la tabella è una struttura esagerata. Propongo una semplice lista, la quale risulta anche di più rapida e accessibile consultazione. Un esempio.
codice:
XHTML
<form id="ordina_prodotti" action="...">
Ordina i nostri prodotti per la casa.</p>
<ul id="elenco_prodotti">[*]
<label for="stappa_lattine">Stappa lattine</label>
<input id="stappa_lattine" name="stappa_lattine" type="checkbox" value="stappa_lattine" />
[*]
<label for="trita_briciole">Trita-briciole</label>
<input id="trita_briciole" name="trita_briciole" type="checkbox" value="trita_briciole" />
[/list]
</form>
CSS
.prodotto_hover
{
background-color:#D4D4D4;
}
.prodotto_selezionato
{
background-color:#D41122;
}
Javascript
window.onload = function()
{
var elenco_prodotti = document.getElementById
('elenco_prodotti')
var prodotti = elenco_prodotti.getElementsByTagName('li')
for (var i = 0; i < prodotti.length; i++)
{
prodotti.item(i).onmouseover = function()
{
this.className += ' prodotto_hover'
}
prodotti.item(i).onmouseout = function()
{
this.className = this.className.replace('prodotto_hover', ' ')
}
}
function colora_prodotti()
{
for (var i = 0; i < prodotti.length; i++)
{
var input_prodotto = prodotti.item(i).getElementsByTagName('input').item(0)
if ( input_prodotto.checked )
{
prodotti.item(i).className = ' prodotto_selezionato'
}
else
{
prodotti.item(i).className = prodotti.item(i).className.replace('prodotto_selezionato', ' ')
}
}
}
for (var i = 0; i < prodotti.length; i++)
{
var input_prodotto = prodotti.item(i).getElementsByTagName('input').item(0)
input_prodotto.onclick = function()
{
colora_prodotti()
}
}
}