Hallo,
kann ich dynamisch die Farbe einer Tabellenzelle ändern ohne das Dokument neu zu schreiben?
Mein Code-Ansatz fundktioniert leider nicht so wie ich mir das denke: Hier mal zum Ansehen:
PHP-Code:
<script type="text/javascript">
var i = 0;
var spalten = 3;
var spalten_cnt = 0;
var reihen = 3;
var id_cnt = 0;
var id_max = 0;
var farben = new Array ("#000000","#333333","#666666","#999999","#CCCCCC","#FFFFFF");
var tags = new Array ("<table border=\"1\" >" , "<tr><td id=\"" , "\" onmouseover=\"javascript:fade(" , ")\"> </td><td id=\"" , "\" onmouseover=\"javascript:fade(",")\"> </td></tr>" , "</table>");
//fader
function fade(id)
{
alert (id)
}
//tabelle aufbauen
id_max = ((reihen * spalten)-1);
document.write(tags[0]);
while ( id_cnt != id_max)
{
document.write(tags[1] + id_cnt + tags[2] + id_cnt);
id_cnt++;
//alert (id_cnt);
spalten_cnt = spalten;
for (spalten_cnt;spalten_cnt>0;spalten_cnt--)
{
document.write(tags[3]+id_cnt + tags[4] + id_cnt);
id_cnt++;
//alert(id_cnt)
}
document.write(tags[5]);
}
document.write(tags[6]);
</script>
Die Funktion fade() gibt erst mal nur die ID aus, die ich beim Tabellenaufbau mit in die Tabelle schreibe. Dazu schreibe ich noch den onmouseover-eventhandler mit in die td, der die funktion fader() gleich mit der id enthält. die fertig zelle sieht also so aus:
<td id="##" onmouseover="javascript
:fader('##')">
Solange ich jetzt nur einen alert mache wie oben, gibt er mir logischerweise die id aus, die er übergeben bekommt. Wenn ich aber ein
document.getElementsByID.bgColor = "#FF0000"
versuche um die Hintergrundfarbe zu ändern sagt er mir, daß document.getElementByID Null ist oder kein Objekt.
Hab jetzt mal grad keine Idee mehr...