| Filtrare gli elementi selezionati |
|
|
|
In questo breve articolo ci preme sottolineare un ulteriore
caratteristica di jQuery, ovvero quella di poter filtrare ulteriormente le selezioni effettuate tramite i selettori. Infatti se ad un primo impatto le opportunità e i criteri di ricerca che mettono a disposizione i selettori possono sembrare sufficienti, jQuery ci facilita il compito mettendo a disposizione dei selettori ulteriori per poter raffinare ulteriormente la ricerca. I filtri comunque non servono solamente ad effettuare compiti di raffinamento, ma permettono anche di raggruppare velocemente ed in maniera semplice elementi che altrimenti non riusciremmo a legare tra loro. Filtri tramite elementi e contenuti
Riprendiamo da dove ci eravamo lasciati introducendo i selettori, fornendo alcuni esempi di filtri che si possono utilizzare in jQuery:
Ecco un esempio che chiarisce il suo semplice utilizzo: $("tr:last"); //seleziona l'ultima riga della tabella (se ve ne è una sola !!!)Queste keyword
sono molto utili e permettono di selezionare in modo molto più rapido
ed efficiente quello che si sta ricercando. $("tr:last").addClass("classe_footer"); //applica la classe classe_footer all'ultima riga della tabellaSe si erano ben capiti questi, se ne possono introdurre degli altri:
Oltre a filtrare gli elementi per ereditarietà come abbiamo visto fino ad ora, possiamo anche filtrare gli elementi in base a criteri specifici, ovvero a caratteristiche che gli stessi possiedono o che non possiedono. Ecco alcuni esempi che come al solito rendono più chiaro il discorso: $("#lista li:has(a)"); // seleziona tutte le voci della lista con id = lista che contengono dei linkFiltri tramite attributiFino ad ora le selezioni sono state fatte utilizzando solamente come mezzo di confronto altri elementi, sia pure per ereditarietàche per contenuti. Un altro metodo di creare ottimi filtri è quello di utilizzare gli attributi degli elementi. La sintassi è simile a quella per gli elementi e resta quindi semplice ed intuitiva. Vediamo subito alcuni esempi: $("a[title='clicca qui']"); //seleziona tutti i link che hanno come attributo title = clicca quidei link. Ci vengono quindi in soccorso degli ulteriori derivazioni sintattiche che jQuery efficientemente ci mette a disposizione: $("a[title^='clicca']"); //seleziona tutti i link il cui title inizia con 'clicca'
$("a[title$='qui']"); //seleziona tutti i link il cui title finisce con 'qui'e va contro quello detto sopra, si possono anche usare i filtri senza il valore di confronto: questo comporta la selezione di tutti i tag che hanno quell'attributo e quindi abbiamo la possibilità di effetture le nostre modifiche in blocco. Non viene considerato quindi il valore che ha quell'attributo. Ecco un esempio: $("a[title]"); //seleziona tutti i link che hanno un title impostato, senza tener conto del valoreTutti
questi filtri come del resto i selettori normali possono essere anche
concatenati, ovvero uno di seguito all' altro $("a[title='apri nuova finestra del browser'] [target='_blank']");Filtri per formUn altro tipo di filtri molto importanti sono quelli che riguardano i form. Questi riveste un ruolo di rilievo dato che la maggior partedei dati è trattata tramite l'uso di form di inserimento. Sfruttano delle scorciaotie sintattiche derivanti dall'utilizzo dei filtri per attributo applicati agli elementi dei form. Ecco un pratico e semplice esempio che mette chiarezza su quanto appena detto: $("input[type='password']"); //seleziona tutti gli elementi password$(":password"); //seleziona tutti gli elementi password (come sopra) |

