Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| de:modul:m307:learningunits:lu02:loesungen:06 [2026/02/09 13:45] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | de:modul:m307:learningunits:lu02:loesungen:06 [2026/02/09 13:45] (aktuell) – ↷ Seite von de:modul:m307:learningunits:lu01:loesungen:06 nach de:modul:m307:learningunits:lu02:loesungen:06 verschoben vdemir | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== LU02.L06 - JSON-File einlesen und dynamsich im der Browser-Fenster ausgeben ====== | ||
| + | |||
| + | ===== Auftrag ===== | ||
| + | Lassen Sie das nachfolgende Script laufen und kommentieren Ihre Erkenntnisse im Code durch entsprechende HTML- oder JS-Codeeinträge. | ||
| + | |||
| + | ===== Lösungen ===== | ||
| + | |||
| + | < | ||
| + | <html lang=" | ||
| + | < | ||
| + | <meta charset=" | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | <div id=" | ||
| + | <!-- die id wird benötigt, damit js mittels getElementbyID die Daten hier im HTML-DOM platzieren kann--> | ||
| + | < | ||
| + | fetch(" | ||
| + | // daten werden gefechted (hergeholt aus der datei) | ||
| + | .then(response => response.json()) | ||
| + | .then(data => { | ||
| + | const ausgabe = document.getElementById(" | ||
| + | // verknüfung der daten mit dem div element der ID=ausgabe | ||
| + | // | ||
| + | for (let i = 0; i < data.lernende.length; | ||
| + | // schleife durchläuft das JSON-Daten, vom Anfang bis zum Ende | ||
| + | // | ||
| + | const lernenderDiv = document.createElement(" | ||
| + | // wichtiger Teil. Hier wird das jeweilige ein DIV-Element für die Anzeige bereitgestellt. | ||
| + | // | ||
| + | const ueberschrift = document.createElement(" | ||
| + | ueberschrift.textContent = " | ||
| + | // Das angelegte DIV erh$lt nun konkrete Daten. Die Überschrift 02 wird als Titel verwendet. | ||
| + | // Der Zähler i+1 zeigt die Reihenfolge. Da JS mit 0 anfängt, müssen wir immer +1 machen. | ||
| + | // | ||
| + | const idP = document.createElement(" | ||
| + | idP.textContent = "ID: " + data.lernende[i].id; | ||
| + | // Das angelegte DIV erhält nun konkrete Daten. Die Überschrift 02 wird als Titel verwendet | ||
| + | // die Lernende.id wird im p.tag ausgegeben | ||
| + | // | ||
| + | const nameP = document.createElement(" | ||
| + | nameP.textContent = "Name: " + data.lernende[i].name + " " + data.lernende[i].nachname; | ||
| + | // Name und Vorname werden ebenfalls mit eine P-Tag ausgegeben | ||
| + | // | ||
| + | const hobbyTitel = document.createElement(" | ||
| + | hobbyTitel.textContent = " | ||
| + | // | ||
| + | // Anlegen unsorted List-Tag-Areas | ||
| + | const hobbyListe = document.createElement(" | ||
| + | // Da Hobbies ein array ist, sollte diese als Aufzählung bmit Butteltpoint ausgegeben werden | ||
| + | // Bei jedem Schleifendurchlauf wird ein eigenes Listen-Element angelegt und das entsprechende Hobby darin platziet. | ||
| + | for (let j = 0; j < data.lernende[i].hobbies.length; | ||
| + | const hobbyItem = document.createElement(" | ||
| + | hobbyItem.textContent = data.lernende[i].hobbies[j]; | ||
| + | hobbyListe.appendChild(hobbyItem); | ||
| + | } | ||
| + | // | ||
| + | // Am Ende wird das ganze Datenset, das wir oben angelegt haben, an das DIV-Tag als HTML-Dom-Unterknoten angehängt. | ||
| + | // Das HTML-Dom ist parat, um an den Browser zur Anzeige geschicht zu werden. | ||
| + | lernenderDiv.appendChild(ueberschrift); | ||
| + | lernenderDiv.appendChild(idP); | ||
| + | lernenderDiv.appendChild(nameP); | ||
| + | lernenderDiv.appendChild(hobbyTitel); | ||
| + | lernenderDiv.appendChild(hobbyListe); | ||
| + | // | ||
| + | // Die Ausgabe wird Durchgeführt | ||
| + | ausgabe.appendChild(lernenderDiv); | ||
| + | } | ||
| + | }) | ||
| + | .catch(err => { | ||
| + | console.error(" | ||
| + | }); | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ---- | ||
| + | [[https:// | ||
| + | |||
| + | |||
| + | |||