Hej,
zunächst mal was ganz allgemeines, warum definierst Du bei einer solch überschaubaren Aufgabe jeden klimbim in ner Variable, die Du dann später sowieso nur einmal brauchst:
var grafik_advent1 = "../bilder/kerze1.gif alt='1. Advent'"
var grafik_advent2 = "../bilder/kerze2.gif alt='2. Advent'"
var grafik_advent3 = "../bilder/kerze3.gif alt='3. Advent'"
var grafik_advent4 = "../bilder/kerze4.gif alt='4. Advent'"
var spacer = "../bilder/spacer.gif"
Warum erzeugst Du hier erst eine Instanz eines Objekt, erfragst die Eigenschaften der Instanz um als allernächstes eine neue Instanz mit eben diesen Eigenschaften zu füttern?
var datum = new Date();
var jahr = datum.getFullYear();
var monat = datum.getMonth+1();
^^^
BTW: Das war ein unverzeiliches Versehen ;)
var tag = datum.getDate();
var jetzt = new Date(jahr,monat,tag);
var advent1 = new Date(2004,11,28);
var advent2 = new Date(2004,12,04);
var advent3 = new Date(2004,12,11);
var advent4 = new Date(2004,12,18);
Mag Geschmacksache sein, aber ich finde hier bietet sich eine switsch/case-Anweisung an:
if (jetzt == advent1) {
document.write("<img src="+grafik_advent1+">");
} else {
if (jetzt == advent2) {
document.write("<img src="+grafik_advent2+">");
} else {
if (jetzt == advent3) {
document.write("<img src="+grafik_advent3+">");
} else {
if (jetzt == advent4) {
document.write("<img src="+grafik_advent4+">");
} else {
document.write("<img src="+spacer+">");
}}}}}
Vielleicht findet ja ihr den groben Fehler?
Die hat vorallem die JavaScript-Konsole gefunden!
Nachdem ich jetzt groß rumgemeckert habe, bei mir funkts so auch immernoch nicht. Vermutung(kenne mich mit JS auch nicht so aus): In Java würde der Vergleich zweier unabhängiger Instanzen mit dem "=="-Operator immer false liefern, weil eben nur die Gleicheit der Instanz und nicht die Gleichheit der Eigenschaften geprüft wird. Für Dein konkretes einfaches Problem, warum nicht so:
var advent1 = '20041028';
var advent2 = '20041104';
var advent3 = '20041111';
var advent4 = '20041118';
var datum = new Date();
var str = datum.getFullYear().toString()
+ datum.getMonth().toString()
+ datum.getDate().toString();
switch (str){
case advent1:...;
case advent2:...;
case advent3:...;
case advent4:...;
}
Das sollte so funken. Hoffe habe etwas helfen können.
Mit besten Grüßen
Biesterfeld