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

Ciclare tutti i link

    // 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 );
		});
	}
);
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!

Similari
Cos’è this?
21% JQuery
Uno degli aspetti più confusi di jQuery è come assegna l’ambito durante il callback. Deve essere parecchio confuso perché l’argomento genera un sacco di domande sulla mailing list di jQuery. Peccato, davvero, perché jQuery…
Utilizzare il metodo data() di jQuery per memorizzare i dati nel DOM
12% JQuery
Se, per un motivo o un altro, si ha bisogno di archiviare temporaneamente i dati, jQuery ha un metodo .data() per la memorizzazione i dati nel DOM. Questo sistema è preferibile da altri come quando si vuole manipolare i va…
Disabilitare il tasto destro del mouse facilmente utilizzando jQuery
11% JQuery
Ho letto diversi messaggi sui forum con richieste su come disabilitare l’evento del tasto destro del mouse in JavaScript. Beh, la soluzione è piuttosto semplice se si usa jQuery! Il trucco è quello di legare (to bind) l’ev…
Come equalizzare l’altezza dei DIV
10% JQuery
Percorriamo tutti i DIV con la funzione each() e ad ogni loop si verifica se l’altezza del DIV corrente è superiore a quella immagazzinata nella variabile di confronto per aggiornare il suo nuovo valore e che sarà usata a …
jQuery UI fixes
8% UI
jQuery UI è utile, ma molti dei suoi widget soffrono di un fastidioso bug di progettazione. Se non si ha a che fare con le finestre modali, non si avrà nemmeno l’esperienza, ma se si tenta di utilizzare una funzione di com…