Usare lo stesso id per elementi distinti nel codice html è un errore e anche abbastanza grave in quanto compromette la corretta gestione dell'albero del dom e i relativi riferimenti.
Quindi se a te serve un segnaposto comune per diversi oggetti allora usa class oppure usa id diversi e ti studi un algoritmo per ricavare da questi id dei riferimenti su cui poter applicare le tue regole.
andiamo poi all'ultima parte del codice :
codice:
function bgtab(id)
{
vare righe=getElementById(id).getElementsByTagName("tr"); //array di righe
var colonna; //conterrà l'elemento td della riga corrente
for (var a=0;a<righe.lenght;a++)
{
colonna=righe[a].firstChild;
colonna.style.backgroundImage="url(background.php?filename="+colonna.className+".png&newxsize="+colonna.offsetWidth+"&newysize="+colonna.offsetHeight+"&bgred=173&bggreen=223&bgblue=156)";
alert('larghezza tabella è ' + getWidth(id)+ ' pixel');
alert('altezza tabella è ' + getHeight(id)+ ' pixel');
}
}
</script>
</head>
<body onload="bgtab('test');">
<table id="test" border="0" width="350" >
<tr>
<td class="intestazione" id=" align="center">intestazione</td>
</tr>
<tr >
<td class="corpo">
ble bla bla
</td >
</tr>
<tr>
<td class="intestazione">ciao mondo</td>
</tr>
</table>
</body>
</html>
Questa è una possibile soluzione: la funzione bgtab('test') crea un array (var righe) formato dalle righe (tr) della tabella di id 'test'.
Siccome nel tuo html c'è solo un td per ogni tr allora creiamo una variabile di nome colonna che conterra appunto tale elemento td.
Questo viene caricato all'inizio del ciclo for con l'istruzione colonna=righe[a].firstChild e processato nel ciclo for per ricavare nell'url i dati className (ovvero il contenuto dell'attributo class) offsetWidth e offsetHeight della cella corrente.
A tale proposito sei sicuro che quell'url funziona? cioè sinceramente non so se è possibile questo tipo di indirizzamento (link dinamico) perchè a quanto ne so in url relativamente alla proprietà background ci deve essere il link a una risorsa statico. ( in tal caso dovresti crearti una classe con ajax che recupera l'url corretto a seconda dei dati javascript).