Html und JavaScript Code?

1 Antwort

Bei dieser JavaScript-Lösung würde ich die Daten nicht aus dem Text parsen, sondern die Werte in data-Attributen ablegen.

<li class="event-item" data-time="2022-11-09">

Im JavaScript-Code holst du dir nur die Einträge, die auch sicher so ein Attribut besitzen:

const events = eventList.querySelectorAll(".event-item[data-time]");

Für die Konversion dieser Zeichenkette kann später die parse-Methode des Date-Objekts verwendet werden.

Die Anzahl an Funden musst du außerdem innerhalb der Schleife mitzählen und in das Abbruchkriterium einfügen. Deine Iterationsvariable (i) gibt darüber keinen Aufschluss.

let found = 0;

for (const eventEntry of events) {
  const eventDateString = eventEntry.dataset.time;
  const eventDate = Date.parse(eventDateString);

  if (found < displayedEvents && eventDate > currentDate) {
    eventEntry.style.display = "block";
    ++found;
  }
  else {
    eventEntry.style.display = "none";
  }
}

Es wäre im Übrigen besser, den Einträgen CSS-Klassenselektoren zuzuordnen und in der CSS-Regel dann das display-Property zu manipulieren.

eventEntry.classList.add("is-past");
eventEntry.classList.remove("is-past")

Zum einen trennst du so Anwendungslogik und Styling, zum anderen fällt es später leichter, bei Bedarf den Einträgen weitere CSS-Properties zuzuordnen.


Gitim510 
Beitragsersteller
 02.11.2023, 18:52

Vielen Dank für deine Antwort. Jetzt bin ich nich der Profi in diesem Gebiet und kenne die ganzen Befehle noch nicht so ganz. Könntest du vielleicht den Code mit deinen Gedanken anpassen, das er dann vielleicht funktioniert. Wenn du das machen könntest wäre ich dir wirklich sehr dankbar. Es ist für eine Gemeindewebseite.