La libreria jQuery fornisce un metodo, each(), che cicla ogni elemento dell’oggetto jQuery di destinazione.

Ciclare tutti i link

[code lang=”javascript”] // Cicla tutti i link con la classe nav
$(‘#menu a.nav’).each(
// per ogni nav, esegue questo codice.
// Il parametro ‘Index’ è l’indice
// del corrente elemento
function(Index){
// Lega l’evento onclick e semplicemente
// apre la finestra di alert che visualizzerà
// il valore dell’indice dell’itterazione.
$(this).bind (‘click’,function(){
alert( ‘Hottie index: ‘ + intIndex );
});
}
);
[/code]
Mentre non vi è nulla di rivoluzionario facendo questo (anche se il metodo “Bind” è è dannatamente dolce), la bellezza del metodo each() è che crea una funzione in ambito separato per ogni iterazione del ciclo. Per chi ha cercato di fare un ciclo standard con for in cui ogni iterazione tenta di impostare dinamicamente un valore oggetto, probabilmente ha incontrato incontrato situazioni in cui tutti i valori post-ciclo sono gli stessi. Questo ha a che fare quando la variabile viene legata.

Con la creazione di una funzione in un ambito separato per ogni iterazione del ciclo, praticamente si eliminano tutti i comportamenti “inaspettati” delle variabili vincolate. Grande!