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(i = 0; i < allCells.length; i++)
{
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(i = 0; i < allRows.length; i++)
{
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(i = 0; i < tds.length; i++)
{
tds[i].onmouseover = function(){
var col = getColumn(this);
for(j = 0; j < col.length; j++)
{
col[j].style.backgroundColor = '#fffd98';
}
}
tds[i].onmouseout = function(){
var col = getColumn(this);
for(j = 0; j < col.length; j++)
{
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.