Souhrnná úloha – Práce s DOM
| Sitio: | Moodle ZČU |
| Curso: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Libro: | Souhrnná úloha – Práce s DOM |
| Imprimido por: | Guest user |
| Día: | domingo, 18 de octubre de 2026, 09:59 |
Úloha
Zadání (kontext úlohy):
Vytvoř jednoduchý „mini seznam úkolů“. Uživatel napíše text do pole, tlačítkem jej přidá do seznamu, v seznamu může položku označit jako splněnou (toggle) nebo ji smazat. Nahoře jsou dvě tlačítka, která přepínají zobrazení: Vše a Hotové.
Cíl úlohy:
Procvičit querySelector, čtení a zápis hodnot z inputu, vytváření a mazání prvků, práci s classList, události a delegaci, a jednoduché přepínání obsahu.
Vstupní podmínky:
-
Pracuj s poskytnutými soubory
index.htmlascript.js. -
Do JS nepoužívej šipkové funkce, ternární operátor ani
var. -
V podmínkách porovnávej hodnoty explicitně (
if (podminka == true)aif (podminka == false)).
Požadovaný výstup:
-
Po kliknutí na Přidat se z inputu (pokud není prázdný) vytvoří nový
<li>do seznamu.-
Každá položka obsahuje text a dvě tlačítka: Hotovo a Smazat.
-
-
Klik na Hotovo přepíná položce třídu
done(viz CSS) pomocíclassList.toggle(...). -
Klik na Smazat položku odstraní ze seznamu.
-
Použij delegaci událostí: posluchač kliknutí je na
<ul>, ne na jednotlivých tlačítkách. -
Tlačítka Vše / Hotové nahoře přepínají zobrazení položek (skryj/zobraz položky bez/ s třídou
done). -
Po úspěšném přidání položky se input vyčistí (nastaví se na prázdný řetězec).
Doplňující pokyny:
-
Prázdný vstup neukládej: kontroluj
text.trim().length. -
Pro skrytí použij třídu
hidden(přidávej/odebírej dle filtru). -
Dejte si pozor na porovnání:
if (text.trim().length == 0) { ... }. -
Delegace: z
event.targetzjisti, zda bylo kliknuto na tlačítko sdata-role.
Řešení úlohy
Co je zde splněno
-
Vytvoření položky po kliknutí na Přidat (s kontrolou
text.trim().length == 0). -
Každá položka má text, tlačítko Hotovo (toggle
.done) a Smazat (odstranění). -
Delegace událostí: jediný posluchač kliknutí je na
<ul id="taskList">, akce se určuje přesevent.targetadata-role. -
Filtr Vše / Hotové přepíná viditelnost pomocí třídy
.hidden. -
Po úspěšném přidání se input vyčistí (
""). -
Kód nepoužívá var, šipkové funkce ani ternární operátor; podmínky mají explicitní porovnání.