Lieber kai_world,
was muss ich bei deinen Script verändern, dass nur 2 anstehende Termine angezeigt werden?
Du müsstest lediglich in der Funktion "aktualisieren" am Ende einen Mechanismus hinzufügen, der die bestehenden Termine auf zwei reduziert.
Dazu könntest Du eine zusätzliche Variable am Anfang definieren, die den Wert 2 enthält. Nennen wir sie "nurZwei". Also steht am Anfang der Funktion "aktualisieren":
var nurZwei = 2;
In der Zeile mit dem Code "if (aktuell < heute) {" beginnt eine Verzweigung, die vergangene Termine aussortiert. Im else-Zweig dagegen werden anstehende Termine behandelt. Dort könntest Du den Anweisungsblock erweitern (also das zwischen "else {" und "}"), um nur zwei Termine anzuzeigen.
Momentan steht da:
} else {
// Details verstecken
uls = termine[i].getElementsByTagName("ul");
if (uls.length > 0) {
uls[0].style.display = "none";
}
}
Das könnte man jetzt "verfeinern", sprich: erweitern.
} else {
if (nurZwei) {
// Details verstecken
uls = termine[i].getElementsByTagName("ul");
if (uls.length > 0) {
uls[0].style.display = "none";
}
nurZwei--; // einen Termin weniger...
} else {
// es wurden zwei Termine angezeigt, alle weiteren jetzt verbergen:
termine[i].style.display = "none";
/* Man hätte hier jetzt auch die Klasse
"termin-vorbei" benutzen können, aber das
widerspricht der Bedeutung dieser Klasse... */
}
}
Der Code ist recht simpel. Er unterscheidet nicht, welcher der bestehenden Termine vor welchem anderen Termin stattfinden wird. Es werden einfach die Termine der Reihenfolge nach, in der sie im Dokument stehen, abgehandelt - völlig unabhängig von ihrem Datumswert.
Aber das zu prüfen, also dass wirklich nur die zwei nächstgelegenen unmittelbar anstehenden Termine angezeigt werden - unabhängig von der Reihenfolge, in welcher sie im Dokument stehen - müsstest Du nun selbst umsetzen. Wenn Du meinen Script-Code kapiert hast, dann sollte das für Dich kein Problem mehr sein.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)