JavaScript  »  Guide  »  Guida jQuery 

Traversing



Nelle lezioni precedenti abbiamo visto come sia possibile, attraverso i selettori CSS, ottenere una collezione di elementi da un documento HTML in modo da poterli manipolare e modificare con jQuery. In alcuni casi, tuttavia, questa collezione potrebbe risultare incompleta oppure poco raffinata per poterci permettere di lavorare al meglio. Inoltre potremmo pensare di utilizzarla come base per attraversare dinamicamente gli altri elementi del DOM e lavorarvi. A queste necessità rispondono una serie di metodi definiti Traversing.

Filtrare la collezione

Oltre al metodo .eq()(visto in precedenza), jQuery mette a disposizione alcuni metodi per filtrare la collezione di elementi. Uno dei più utili è sicuramente .filter() che accetta come argomento sia un selettore CSS, sia una funzione. Nel primo caso basterà passare la stringa alla funzione per eliminare tutti gli elementi che non corrispondono alle regole indicate:

$("#contenitore a").filter(".external"); //restituisce solo i  link con classe external

In alternativa si può definire una funzione che operi da filtro restituendo true o false. Adattando l'esempio precedente dovremmo scrivere:

$("#contenitore a").filter(function () {

// this rappresenta un singolo elemento
return $(this).hasClass("external");

});

Il metodo opposto a .filter() è .not(), che include tutti gli elementi che NON corrispondono al selettore indicato.

$("#contenitore a").not(".external"); //tutti i link senza classe external

Molto simile a .eq() è .slice(), che opera nello stesso modo del metodo per array nativo in JavaScript, estraendo un specifica porzione della collezione:

$("#contenitore a").slice(0, 2) // solo il primo e secondo link

Chiude il gruppo dei filtri .is(), che accetta un selettore CSS come argomento e restituisce true quando gli elementi rispettano le regole indicate. Questo metodo è particolamente utile nelle strutture di controllo all'interno di cicli .each() per suddividere le operazioni da compiere sugli elementi in base ai valori di this:

$("#contenitore a").each(function () {

if ($(this).is(".external")) { //codice per link esterni } else { //codice per link interno }
});

Ultimi articoli JavaScript

PhantomJS, headless browser per test con Javascript

Il tool ideale per realizzare, da terminale, operazioni in remoto su...

Creare e leggere QR Code in JavaScript

Applicazioni 'QR Code enabled' per il Web e per il mobile,...

Jquery UI Map: web-mapping con Google Maps e jQuery

Un plugin di jQuery UI per intefacciare applicaizoni Web/mobile con...

Scrollorama e Scrolldeck, slideshow d'effetto con jQuery

Plugin jQuery per ottenere Slideshow con diversi effetti di scrolling

jCanvas, un primo semplice grafico

Alla scoperta della libreria jCanvas, per semplificare il disegno e...

Altri articoli

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida Javascript: tecniche avanzate

Una guida dal taglio pratico per approfondire la programmazione a...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti