Warum wird mein akutelles Alter nicht in der Klammer angezeigt?
Ich würde gerne, dass anhand des Javascripts mein aktuelles Alter mitangezeigt wird, woran liegt das Problem - hier mein Codeabschnitt im HTML und JS
HTML:
<p>Geburtsdatum: 28.06.2001 (<span id="alter"></span</p>
JS:
document.addEventListener('DOMContentLoaded', () => {
const geburtsdatum = new Date(2002, 8, 25);
function berechneAlter(geburtsdatum) {
const heute = new Date();
let alter = heute.getFullYear() - geburtsdatum.getFullYear();
const monatDifferenz = heute.getMonth() - geburtsdatum.getMonth();
const tagDifferenz = heute.getDate() - geburtsdatum.getDate();
if (monatDifferenz < 0 || (monatDifferenz === 0 && tagDifferenz < 0)) {
alter--;
}
return alter;
}
const alter = berechneAlter(geburtsdatum);
const alterElement = document.getElementById('alter');
if (alterElement) {
alterElement.textContent = alter; // Alter in das <span>-Element schreiben
} else {
console.error('Element mit id="alter" nicht gefunden!');
}
});
2 Antworten
<span id="alter"></span</p>
Da fehlt eine schließen Klammerfür das HTML '>' und eine Klammer für den Inhalt ')'.
Danke für deine Antowrt aber leider funktioniert es immer noch nicht richtig
HTML:
<p>Geburtsdatum: 13.03.2005 (<span id="alter"></span>)</p>
JS:
const geburtsdatum = new Date(2005, 3, 13);
function berechneAlter(geburtsdatum) {
const heute = new Date();
let alter = heute.getFullYear() - geburtsdatum.getFullYear();
const monatDifferenz = heute.getMonth() - geburtsdatum.getMonth();
const tagDifferenz = heute.getDate() - geburtsdatum.getDate();
if (monatDifferenz < 0 || (monatDifferenz === 0 && tagDifferenz < 0)) {
alter--;
}
return alter;
}
const alter = berechneAlter(geburtsdatum);
document.getElementById('alter').textContent = alter;
Also bei mir geht es:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<style>
</style>
<script>
const geburtsdatum = new Date(2005, 3, 13);
function berechneAlter(geburtsdatum) {
const heute = new Date();
let alter = heute.getFullYear() - geburtsdatum.getFullYear();
const monatDifferenz = heute.getMonth() - geburtsdatum.getMonth();
const tagDifferenz = heute.getDate() - geburtsdatum.getDate();
if (monatDifferenz < 0 || (monatDifferenz === 0 && tagDifferenz < 0)) {
alter--;
}
return alter;
}
function init(){
const alter = berechneAlter(geburtsdatum);
document.getElementById('alter').textContent = alter;
}
document.addEventListener("DOMContentLoaded", init);
</script>
</head>
<body>
<p>Geburtsdatum: 13.03.2005 (<span id="alter"></span>)</p>
</body>
</html>
Lad dir mal Visual Studio Code herunter, da werden dir solche Fehler angezeigt. Was hast du denn als Code Editor benutzt? Den Windows Editor, Notepad++?
Lässt Du das so laufen mit "HTML:" und "JS:"? Oder ist das HTML-Dokument in der richtigen Syntax gebettet?
Das JavaScript muss zumindest mit einem <script> vor dem JS und </script> gekennzeichnet sein. Der HTML-Bereich benötigt auch noch eine ordentliche Einbettung in validen Code (steht im Antwortbereich weiter unten z.B.).
Danke für deine Antwort !
Kannst du mir vlt. den ganzen HTML Code ausgeben, entweder es funktioniert nicht oder ich habe wieder was falsch gemacht