JavaScript  »  Guide  »  Guida jQuery 

A spasso per il DOM



jQuery mette a disposizione molti metodi per spostarsi all'interno del documento HTML modificando dinamicamente il numero e la tipologia di elementi della collezione. Prima di elencarne i più importanti, è importante definire la funzione di .end() e .andSelf().
Il primo serve a ripristinare la collezione alla sua struttura originaria, cioè a reintegrare tutti gli elementi raccolti con il selettore passato a $(), eccone un esempio:

var lista = $("#menu li"); //tutti i tag li
lista.find("a"); //tutti i tag a contenuti nei tag li
lista.end(); //ripristino i tag li

Questa funzione permette, in poche parole, di ritornare indietro nella selezione al punto di partenza.

Il secondo metodo da ricordare è .andSelf(), con il quale possiamo includere gli elementi di partenza della selezione dentro la nuova selezione generata da uno dei metodi di traversing:

var lista = $("#menu li"); //tutti i tag li
lista.find("a"); //tutti i tag a contenuti nei tag li
lista.andSelf(); //tutti i tag a ed i tag li

Andare in profondità

Nonostante vi sia un numero considerevole di metodi traversing, solo alcuni vengono utilizzati spesso. Anzitutto .find() ricerca elementi figli all'interno della collezione attuale secondo il selettore CSS passato come argomento. Diversamente .add() aggiunge gli elementi selezionati alla collezione corrente senza tener conto della loro posizioen nel DOM.

Molto simile a .find() è .children(), che tuttavia ricerca solo gli elementi direttamente contenuti (discendenti) in quelli della collezione:

$("#menu").find("li"); // tutti i tag li
$("#menu").children("li"); // tutti i tag li del primo livello

Ecco un esempio pratico di questi metodi.

Risalire l'albero DOM

Per risalire l'albero del documento sono disponibili .parent() e .parents(): ambedue ricercano gli elementi contenitori di quelli presenti nella collezione ed accettano un selettore come filtro opzionale per raffinare la ricerca. L'unica differenza è che .parent() si ferma al primo livello trovato, mentre .parents() risale tutto l'albero (esempio).

A partire dalla versione 1.3 jQuery offre inoltre il metodo .closest(), che opera nello stesso modo di .parent() includendo nella ricerca anche l'elemento corrente. Questo metodo è molto utile nel caso l'elemento originario sia this:

$(this).closest("li"); //il primo li genitore trovato anche se è this

Elementi contigui

Se è possibile scendere e risalire l'albero del documento è anche possibile spostarsi fra gli elementi contigui (sibling) che precedono o seguono quelli della collezione. Per questo scopo possiamo utilizzare rispettivamente .prev() o .next(). Anche questi due metodi accettano un selettore CSS come filtro ed inoltre permettono di selezionare tutti gli elementi contigui con .prevAll() e .nextAll(). Infine attraverso .siblings() possiamo selezionare gli elementi adiacenti sia precedenti che seguenti (esempio).

Catene complesse

Una volta comprese le possibilità del traversing è anche possibile comporre catene complesse di metodi jQuery per lavorare su molti elementi partendo da una collezione di base. In questo caso è anche importante seguire delle regole di scrittura del codice che lo rendano leggibile. Solitamente una catena segue queste convenzioni:

$(selettore)
.find(selettore).css([...])
.end()
.find(altroselettore).attr([...])
.next().attr([...])

Ricordatevi comunque che non tutti i metodi jQuery sono concatenabili, ma solo quelli che non restituiscono un valore (array stringa o boolean che sia).

//rimuovere l'attributo target da tutti gli elementi della collezione
$("#menu li a").removeAttr("target");

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