Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m291:learningunits:lu05:theorie:a_dom_traversal [2026/03/08 23:18] – gkoch | de:modul:m291:learningunits:lu05:theorie:a_dom_traversal [2026/03/08 23:24] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 91: | Zeile 91: | ||
| ===== Schritt 2: querySelector vs. querySelectorAll ===== | ===== Schritt 2: querySelector vs. querySelectorAll ===== | ||
| - | {{: | + | {{: |
| Als Erstes selektieren wir die Elemente im DOM. Was passiert, wenn wir '' | Als Erstes selektieren wir die Elemente im DOM. Was passiert, wenn wir '' | ||
| Zeile 177: | Zeile 177: | ||
| - | ``` | ||
| ===== Schritt 4: Das richtige Panel finden – DOM Traversal ===== | ===== Schritt 4: Das richtige Panel finden – DOM Traversal ===== | ||
| Zeile 189: | Zeile 188: | ||
| Die sauberere Lösung nutzt die **Struktur des DOMs** selbst. Im HTML ist jedes Panel das direkte Geschwister-Element des zugehörigen Buttons: | Die sauberere Lösung nutzt die **Struktur des DOMs** selbst. Im HTML ist jedes Panel das direkte Geschwister-Element des zugehörigen Buttons: | ||
| + | <WRAP center round box 80%> | ||
| <code html> | <code html> | ||
| <div class=" | <div class=" | ||
| Zeile 196: | Zeile 195: | ||
| </ | </ | ||
| </ | </ | ||
| + | </ | ||
| - | Mit '' | + | Mit '' |
| <WRAP center round box 80%> | <WRAP center round box 80%> | ||
| Zeile 238: | Zeile 238: | ||
| Testen Sie: Alle Panels sollten sich jetzt öffnen lassen – aber noch nicht schliessen. | Testen Sie: Alle Panels sollten sich jetzt öffnen lassen – aber noch nicht schliessen. | ||
| - | |||
| - | ---- | ||
| ===== Schritt 5 & 6: Zum finalen Script ===== | ===== Schritt 5 & 6: Zum finalen Script ===== | ||
| Zeile 271: | Zeile 269: | ||
| buttons.forEach((button) => { | buttons.forEach((button) => { | ||
| button.addEventListener(' | button.addEventListener(' | ||
| - | const btn = e.currentTarget; | + | const btn = e.currentTarget; |
| - | const panelElement = btn.nextElementSibling; | + | const panelElement = btn.nextElementSibling; |
| const panelIsOpen | const panelIsOpen | ||
| Zeile 300: | Zeile 298: | ||
| Das '' | Das '' | ||
| - | ``` | ||
| - | |||
| - | |||