
Originariamente inviata da
KillerWorm
Ciao e benvenuto.
L'effetto visivo è quello, ma in realtà ripulisce tutti i campi tranne quello appena modificato. Chiaramente vedrai ripulire solo il precedente perché gli altri sono già vuoti.
Cerco di chiarirti quanto hai chiesto, ma non ti nascondo che queste sono delle nozioni di basi della programmazione, per cui credo che tu abbia sbagliato guida per iniziare. Magari dovresti iniziare da qualcosa di più basilare... o magari hai semplicemente saltato qualche capitolo in modo poco furbo
Comunque sia, il primo
if è una semplice condizione che sostanzialmente considera tutti gli elementi che sono diversi da quello preso in esame (cioè quello che si riferisce alla variabile
kanga passata alla funzione). Chiaramente va tenuto presente che siamo dentro un ciclo, il quale è impostato per creare un'iterazione sui 4 campi input nell'esempio.
Traducendo la condizione in italiano, possiamo dire che tutte le volte che la variabile
i (incrementata durante il ciclo
for) risulta non uguale ("
!=") alla variabile
kanga, argomento della funzione (decrementata di 1)*, cioè dall'indice riferito al nome del campo che ha richiamato la funzione, allora il valore del campo (considerato in riferito all'iterazione corrente del ciclo) viene vuotato.
Se tale condizione non è soddisfatta, significa che si tratta del campo sul quale si sta agendo, per cui avverrà l'azione definita dentro il blocco
else.
* la variabile
kanga avendo 1 come primo valore, in riferimento agli elementi considerati, viene decrementata di 1 per poterla correttamente comparare col valore di
i che invece parte da 0.
Questo è dovuto a due fattori:
-
fattore computazionale - generalmente in programmazione un vettore (array, collection o altri tipi di liste di elementi), come è quello restituito da
getElementsByTagName(), è definito in base 0, cioè il primo elemento ha indice 0 e non 1. Non è sempre così ma convenzionalmente questa è la norma.
-
fattore umano - d'altra parte, per una questione di leggibilità del codice, i programmatori usano spesso definire il primo elemento, di una determinata lista, in maniera più "umana" partendo da 1 anziché 0.
Per cui da script sarà necessario "correggere" opportunamente questa differenza, come è stato fatto, per poter comparare correttamente i valori considerati.
Non ti nego che ci sono svariati modi (anche più stringati, ottimizzati, nonché più scalabili) per ottenere lo stesso risultato ma con un codice magari più pulito (senza voler togliere nulla a quella guida).
PS: consiglio di utilizzare titoli maggiormente autodescrittivi quando apri nuove discussioni.
PPS: giusto per informazione, purtroppo c'è attualmente qualche problema con la piattaforma del forum, per cui non fare caso ad eventuali errori di codifica delle lettere accentate quando posti sul forum.