# 19 - Todo List Aplikace
## 🎯 Co se naučíte
V této lekci se naučíte vytvořit kompletní Todo List aplikaci s přidáváním, odebíráním a označováním úkolů.
## 📚 Témata lekce
- **Todo List aplikace** - praktický projekt
- **Dynamické přidávání položek** do seznamu
- **Odstranění položek** z DOM
- **Toggle stavu** - splněno/nesplněno
- **Local Storage** - ukládání dat v prohlížeči (možná)
- **Event delegation** - efektivní event handling
- **Bootstrap styling** pro moderní UI
- **Textarea** - víceřádkový vstup
## 📂 Soubory v projektu
- `index.html` - HTML s formulářem a seznamem
- `todo.js` - JavaScript pro funkcionalitu
- `css/bootstrap.css` - Bootstrap CSS
## 💻 Ukázka z lekce
### HTML struktura:
```html
```
### JavaScript - Přidání úkolu:
```javascript
function additem() {
const todoitem = document.getElementById("todoitem").value;
if (todoitem === "") {
alert("Zadej úkol!");
return;
}
const todoList = document.getElementById("todoList");
// Vytvoření
elementu
const li = document.createElement("li");
li.className = "todolistitem";
li.innerHTML = `
${todoitem}
`;
todoList.appendChild(li);
// Vyčištění textarea
document.getElementById("todoitem").value = "";
}
// Odstranění úkolu
function removeitem(button) {
const li = button.parentElement;
li.remove();
}
// Toggle splněno/nesplněno
function toggleitem(button) {
const li = button.parentElement;
li.classList.toggle("text-decoration-line-through");
li.classList.toggle("text-muted");
}
```
## 🚀 Jak s lekcí pracovat
1. Otevřete `index.html` v prohlížeči
2. Napište úkol do textarey
3. Klikněte na "ZAPSAT" - úkol se přidá do seznamu
4. Vyzkoušejte tlačítko "Hotovo" - přeškrtne úkol
5. Klikněte na "Smazat" - odstraní úkol ze seznamu
6. Přidejte více úkolů a vyzkoušejte všechny funkce
7. Prozkoumejte `todo.js` - jak funguje logika
## 💡 Tip pro studenty
### parentElement:
```javascript
function removeitem(button) {
// button =