diff --git a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/base.js b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/base.js index 26d7f50..6c84cb5 100644 --- a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/base.js +++ b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/base.js @@ -5,6 +5,7 @@ * Simulare l'accensione delle luci di un semaforo modificando il colore di sfondo. * * ISTRUZIONI: + * 0. Controlla se nel file HTML è incluso questo script. * 1. Seleziona i tre div delle luci (id: 'luce-rossa', 'luce-gialla', 'luce-verde'). * 2. Seleziona i due bottoni (id: 'btn-attiva-rosso', 'btn-attiva-verde'). * 3. Aggiungi un event listener al bottone "Attiva Rosso": @@ -13,4 +14,3 @@ * 4. Fai lo stesso per il bottone "Attiva Verde" (luce passa da '#050' a '#0f0' o 'green'). */ -// Scrivi qui il tuo codice... \ No newline at end of file diff --git a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/contatore.js b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/contatore.js index 0c0fbb2..c549af7 100644 --- a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/contatore.js +++ b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/contatore.js @@ -5,14 +5,14 @@ * Creare un contatore che aumenta ogni volta che si preme un bottone. * * ISTRUZIONI: + * 0. Controlla se nel file HTML è incluso questo script. * 1. Seleziona lo span che contiene il numero (id: 'contatore-valore') e i bottoni. * 2. Crea una variabile let `conteggio` inizializzata a 0. * 3. Al click su 'btn-incrementa': - * - Aumenta la variabile `conteggio` di 1. - * - Aggiorna il testo dello span con il nuovo valore. + * - Aumenta la variabile `conteggio` di 1. + * - Aggiorna il testo dello span con il nuovo valore. * 4. Al click su 'btn-reset': - * - Riporta `conteggio` a 0. - * - Aggiorna il testo dello span. + * - Riporta `conteggio` a 0. + * - Aggiorna il testo dello span. */ -// Scrivi qui il tuo codice... \ No newline at end of file diff --git a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/debug.js b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/debug.js index 7a11ad6..241ac82 100644 --- a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/debug.js +++ b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizi2/debug.js @@ -6,15 +6,17 @@ * quando si preme il bottone. Ma non funziona o genera errore. * * TASK: - * 1. Apri la console e leggi l'errore quando clicchi il bottone. - * 2. Capisci perché `style` non funziona. + * 1. Apri il BROWSER esterno e leggi cosa mostra la console + * Se provi a cliccare il bottone dovrebbe apparire un messaggio di errore. + * 2. Capisci perché questo codice non funziona. + * Potrebbe essere un errore di selezione, di metodo, o di logica. * 3. Correggi il codice. */ const bottone = document.getElementById('btn-colora-tutti'); const paragrafi = document.querySelectorAll('.testo-colorato'); -bottone.addEventListener('click', function() { +bottone.addEventListener('click', () => { paragrafi.style.color = 'blue'; console.log("Colorati!"); }); diff --git a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizio.html b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizio.html index 0792c97..71683cf 100644 --- a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizio.html +++ b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/esercizio.html @@ -17,9 +17,15 @@ #messaggio-sistema { padding: 10px; background: #ffcccc; border: 1px solid red; color: darkred; margin-bottom: 20px; } /* Stili per esercizi della parte 2 */ - .esercizio-box { min-height: 50px; border: 1px dashed #999; padding: 10px; margin: 10px 0; } .error { color: red; } .success { color: green; } + + /* Stili per parte Extra */ + #zona-extra ul { list-style-type: none; padding-left: 20px; display: flex; gap: 10px; } + #zona-extra ul > li { margin: 5px 0; border: 1px solid #ccc; padding: 10px; border-radius: 4px; background: #f0f0f0; } + .esercizio-box { min-height: 50px; border: 1px dashed #999; padding: 10px; margin: 10px 0; max-width: 320px; } + #container-extra-box { display: flex; gap: 10px; flex-wrap: wrap; } + #zona-extra input { padding: 5px; font-size: 16px; border-radius: 4px; border: 2px solid #ccc; } @@ -82,5 +88,6 @@ + \ No newline at end of file diff --git a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/debug_avanzato.js b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/debug_avanzato.js index 73a80ec..cb7ad1a 100644 --- a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/debug_avanzato.js +++ b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/debug_avanzato.js @@ -13,18 +13,20 @@ // Setup del DOM per l'esercizio // NON TOCCARE QUESTA PARTE, SERVE PER L'ESERCIZIO -const container = document.getElementById('container-extra-debug'); +const container = document.querySelector('#container-extra-debug'); container.innerHTML = ` - - +

Lista A:

+ +

Lista B:

+ `; // CODICE BUGGATO: -const item = document.querySelector('li'); -const listaB = document.getElementById('lista-b'); +// Vogliamo che cliccando su un item della Lista A, questo venga spostato nella Lista B. +// MA il codice attuale non funziona come previsto. +const tuttiItem = document.querySelectorAll('#lista-a > li'); +const listaB = document.querySelector('#lista-b'); -// Vogliamo che al click, l'item vada nella lista B -item.addEventListener('click', function () { - // Codice attuale che non fa nulla o da errore se non completato: +tuttiItem.forEach(item => { listaB.innerHTML = item; }); diff --git a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/generatore_box.js b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/generatore_box.js index 27aefbc..615db00 100644 --- a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/generatore_box.js +++ b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/generatore_box.js @@ -8,9 +8,11 @@ * 1. Seleziona il div 'container-extra-box' nella pagina esercizi.html. * 2. Crea un array di colori: const colori = ['red', 'blue', 'green', 'orange', 'purple']; * 3. Usa un ciclo `for` che va da 0 a 4 (o lunghezza array): - * - Crea un nuovo `div`. - * - Assegnagli una larghezza e altezza di 100px. - * - Assegnagli il colore di sfondo prendendolo dall'array in base all'indice. - * - Aggiungi un evento 'click' al div: quando cliccato, il div deve rimuoversi da solo (`this.remove()`). - * - Aggiungi il div al 'container-extra-box'. - */ \ No newline at end of file + * Per ogni iterazione: + * - Crea un nuovo `div` e salvalo in una variabile `box`. + * - Assegnagli una larghezza e altezza di 100px (style) + * - Assegnagli il colore di sfondo prendendolo dall'array in base all'indice. + * - Aggiungi un event listener 'click' che rimuove il div quando viene cliccato. (box.remove()) + * - Aggiungi il div al 'container-extra-box'. + */ + diff --git a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/validatore_input.js b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/validatore_input.js index 11d5302..298dd09 100644 --- a/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/validatore_input.js +++ b/JS_Esercizi/JS_Esercizi 08 - DOM/esercizi/extra/validatore_input.js @@ -6,11 +6,13 @@ * * ISTRUZIONI (Usa 'container-extra-validatore' per generare l'HTML necessario via JS o scrivilo a mano): * 1. Crea/Inserisci un input type="text" e un paragrafo per il messaggio di errore. + * Inseriscili dentro il div con id 'container-extra-validatore' (puoi farlo via JS o scrivendoli direttamente nell'HTML). * 2. Ascolta l'evento 'input' (mentre l'utente scrive). * 3. Se la lunghezza del valore (`value.length`) è inferiore a 5 caratteri: - * - Bordo dell'input: Rosso. - * - Messaggio: "Troppo corto!". + * - Bordo dell'input: Rosso. + * - Messaggio: "Troppo corto!". * 4. Se la lunghezza è 5 o più: - * - Bordo dell'input: Verde. - * - Messaggio: "OK!". - */ \ No newline at end of file + * - Bordo dell'input: Verde. + * - Messaggio: "OK!". + */ + diff --git a/JS_Esercizi/JS_Esercizi 08 - DOM/tutorial_interattivo_parte2.js b/JS_Esercizi/JS_Esercizi 08 - DOM/tutorial_interattivo_parte2.js index c900e59..e89b29a 100644 --- a/JS_Esercizi/JS_Esercizi 08 - DOM/tutorial_interattivo_parte2.js +++ b/JS_Esercizi/JS_Esercizi 08 - DOM/tutorial_interattivo_parte2.js @@ -45,7 +45,7 @@ */ // TODO: Seleziona l'input con id 'input-utente' e lo span con id 'output-testo'. // TODO: Aggiungi un listener 'input' al campo di testo. -// TODO: Nella funzione, copia il valore dell'input (`input.value`) dentro l'`textContent` dello span. +// TODO: Nella funzione, copia il valore dell'input (`input.value`) dentro il `textContent` dello span. /**