I filtri del motore di selezione si presentano con una
sintassi molto simile aglii pseudoselettori CSS, cioè preceduti dai due
punti ":".
Attraverso questi selettori speciali (spesso un'estensione dei selettori nativi CSS) è possibile non solo raffinare la selezione degli elementi, ma raggruppare molto velocemente degli elementi specifici.
Il primo gruppo di filtri riguarda gli "elementi figli", ed è in grado di fornire un metodo di selezione degli elementi in base alla loro posizione rispetto all'elemento contenitore. Nell'esempio qui sotto, il primo selettore troverà solo il primo elemento della lista con id menu, mentre per selezionare l'ultimo useremo il secondo:
$("#menu li:first-child");
$("#menu li:last-child");
Infine per ricercare solo gli elementi singoli utilizzeremo:
$("#menu li:only-child");
Un caso più complesso è quello del filtro :nth-child() che accetta, tra le parentesi, varie opzioni:
even: solo elementi pariodd: solo elementi dispariindice: un numero che indichi la posizione (pertendo da 1)equazione: un'equazioneEcco una pagina di esempio sui possibili utilizzi di questi filtri.
In questa categoria si trovano tutti quei selettori per filtrare gli elementi di una pagina in base a specifici criteri come per esempio la visibilità:
$("div:hidden"); //tutti i tag div nascosti
o ancora in base al loro contenuti:
$("#menu li:has(ul)"); //tutte voci di menu con sottomenu
o, in negativo, in base a ciò che non sono:
$("a:not(.external)"); //tutti i link eccetto quelli con classe external
Anche per questo tipo di filtri non manca la possibilità di filtrare gli elementi in base alla loro posizione nel documento. In questo caso, però, non viene tenuto conto della loro posizione relativamente agli altri elementi adiacenti, bensì vengono presi in considerazione tutti gli elementi anche se ad un livello superiore (esempio):
$("#menu li:first"); //il primo tag lista
$("#menu li:odd"); //tutti gli elementi dispari di una lista
$("#menu li:eq(3)"); // il terzo elemento di una lista
Un gruppo di filtri molto interessante è quello dei form. Permette infatti di lavorare con molta facilità sugli elementi dei moduli, un esempio:
$("input[type='text']");
può essere scritto anche:
$(":text");
Con la stessa brevità possiamo ricercare elementi gli elementi disabilitati, magari per abilitarli dinamicamente:
$(":disabled").removeAttr("disabled");
o ancora trovare velocemente i checkbox selezionati dall'utente:
$(":checked");
Per capire meglio l'utlità di questi filtri guardate la pagina di esempio.
Riferimenti:
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |