Also das Problem wäre gelöst, ich hab da mal schnell ne Demo gebastelt, die genau das tut. Ohne Dein HTML mußte ich den loop über ein Hilfsdatum simulieren. Das Objekt TD wird in IE und FF übergeben und es passiert auch das richtige - im FF. Der IE färbt immer die nächsthöhere Zelle, obwohl er in einem debug-alert den richtigen Wert ausgibt. Aber vielleicht passiert das mit Deinen Werten ja gar nicht.
Viele Grüße,
Thomas
-----------------Code--------------
Switch die Farbe
function bgdefault (date) { //übergebe Zellen-ID
var color = „white“; //fixiert weil einfacher
var color2 =„green“;
var myDate = new Date(2012,03,01); // Datum als Hilfswert, weil das Original HTML fehlt
for (var i = 1; i <= 9; i++) {
myDate.setDate(i); //setzt den Tag im Hilfswert hoch
//Debuginfo, schreibt die Liste der Hilfs-IDs
/* var curdate = ((myDate.getDate()-1)+"."+(myDate.getMonth())+"."+myDate.getFullYear()); //steht jetzt in den Blöcken für die Browser
var newLI = document.createElement(„li“);
var newLIText = document.createTextNode(curdate+" ");
document.getElementById(„Liste“).appendChild(newLI);
document.getElementsByTagName(„li“)[i].appendChild(newLIText);
*/
if(navigator.appName == ‚Microsoft Internet Explorer‘) {
var curdate = ((myDate.getDate()-1)+"."+(myDate.getMonth())+"."+myDate.getFullYear()); // generiert curdate in der Form, wie sie in den IDs steht aus dem Hilfswert myDate
mytd = document.getElementsByTagName(„td“)[curdate]; //holt das Object - funktioniert
if(curdate !== date) {
mytd.style.backgroundColor=color;
}
else {
mytd.style.backgroundColor=color2; //und hier färbt der IE leider die ID curdate plus eins, der FF machts richtig
alert(curdate+" = "+date); //gibt die Vergleichswerte nochmal aus, die sind wirklich gleich und richtig
}
} else { //FF und andere Browser
var curdate = (myDate.getDate()+"."+(myDate.getMonth())+"."+myDate.getFullYear()); // generiert curdate in der Form, wie sie in den IDs steht aus dem Hilfswert myDate
mytd = document.getElementsByTagName(„td“)[curdate]; //holt das Object
if(curdate !== date) { //vergleicht
mytd.style.backgroundColor=color; //setzt die Farbe erfolgreich
}
else {
mytd.style.backgroundColor=color2;
}
}
}
}
body{font-family: verdana; font-size: 10pt;}
td{font-family: verdana; font-size: 10pt;} /*für den doofen IE*/
01.03.2012
02.03.2012
03.03.2012
04.03.2012
05.03.2012
06.03.2012
07.03.2012
08.03.2012
09.03.2012
- Element