Originariamente inviato da artorius
mmm la colonna... in effetti è un po' incasinato

Allora, la questione è che per ottenere gli elementi da evidenziare devi ottenere l'indice della cella su cui sei e poi ricercare TUTTE le righe della tabella e per ogni riga evidenziare la cella con indice = a quello trovato.

Allora ti scrivo una funzione che prende in ingresso una cella e ritorna un array contenente le celle della colonna corrispondente. Tieni presente che se ci sono celle in colspan questo manderà l'effetto a ${espressione poco carina}

Codice PHP:
function getColumn(cell)
{
   var 
tmp cell.parentNode;
   var 
allCells tmp.getElementsByTagName('td');
   var 
index 0;   
   for(
0allCells.lengthi++)
   {
      if(
allCells[i] == cell){index i; break;}
   }
   while(
tmp.tagName.toLowerCase() != 'table')
   {
tmp tmp.parentNode;};
   var 
allRows tmp.getElementsByTagName('tr');
   var 
ret = new Array();
   var 
counter 0;
   for(
0allRows.lengthi++)
   {
      
allCells allRows[i].getElementsByTagName('td');
      
ret[counter++] = allCells[index];
   }
   return 
ret;

A questo punto devi solo applicarlo all'evento onMouseOver e onMouseOut delle celle della tabella con una istruzione per modificare il BG e sei a posto.

Ad esempio
Codice PHP:
window.onload = function(){
    var 
tds document.getElementsByTagName('td');
    for(
0tds.lengthi++)
    {
        
tds[i].onmouseover = function(){
            var 
col getColumn(this);
            for(
0col.lengthj++)
            {
                
col[j].style.backgroundColor '#fffd98';
            }
        }
        
tds[i].onmouseout = function(){
            var 
col getColumn(this);
            for(
0col.lengthj++)
            {
                
col[j].style.backgroundColor '#fff';
            }
        }
    }

N.B. io ho gestito solo le celle TD, non le TH, ma per quello dovrebbe bastarti modificare leggermente lo script.
grazie per la risposta, faccio qualche prova e ti faccio sapere

grazie per ora