Le API di JQuery, il cuore.
In questa sezione vediamo come sia possibile lavorare con JQuery suddividendo gli argomenti per azioni e tipologia.
Selezione di Oggetti DOM.
Gli oggetti DOM normalmente sono identificati dal loro TAG. Sappiamo quanti possano essere i tag e quanti ne possiamo trovare in una singola pagina. Quindi oltre ai tag abbiamo a disposizione anche l' attributo ID che fornisce un' ulteriore classificazione. Infine abbiamo la classe o le classi CSS, che possono essere assegnate al TAG.
Selezione per ID.
Per selezionare un tag in base al suo ID, basta chiamare la funzione $(#[ID tag]) e usarla come oggetto come nell' esempio sottostante.
Selezione per ID
<!-- SEZIONE HTML --//>
<DIV ID="Contenitore">Del Testo</DIV>
<INPUT TYPE="button" onclick="SelezionaId('Contenitore');">
//Sezione Javascript
function SelezionaId(nome)
{
$("#" + nome).css("border","3px solid black");
}
Alla pressione del pulsante il Div da noi indicato verrà colorato con un Bordo di 3px nero.
Selezione per Tag.
La selezione per tag è molto simile a quella per ID, solamente che in questo caso il prodotipo $(oggetto) va chiamato con il nome del tag senza il cancelletto davanti.
Selezione per ID
<!-- SEZIONE HTML --//>
<DIV>Del Testo</DIV>
<INPUT TYPE="button" onclick="SelezionaTag('DIV');">
//Sezione Javascript
function SelezionaTag(nome)
{
$(nome).css("border","3px solid black");
}
Selezione per Classe CSS.
Questo ultimo selettore ritengo sia il toccasana specialmente nelle situazioni dove vogliamo mostrare un messaggio a video magari precedentemente nascosto proprio con i CSS. In questo caso il parametro per il prototipo di selezione sarà il nome della classe CSS preceduto dal punto.
Selezione per Classe CSS
<!-- SEZIONE HTML --//>
<DIV Class="Speciale">Del Testo</DIV>
<INPUT TYPE="button" onclick="SelezionaClass('Speciale');">
//Sezione Javascript
function SelezionaClass(nome)
{
$("." + nome).css("border","3px solid black");
}
Questi sono i principali selettori, che possiamo usare un po' ovunque. Nel caso in cui pero' volessimo iterare tra gli elementi di una pagina come ad esempio tutti i tag P possiamo usare la parola chiave * che in JQuery significa tutto. Ed ottenere un codice simile a questo:
Selezione di tutto
function ColoraTutto()
{
$("*").css("border","1px solid black");
}
Altre tipologie di selezione.
Gli altri selettori sono suddivisi per tipologia e li andiamo ad elencare di seguito:
Prima tipologia, gli oggetti nelle forms. Come operare sugli oggetti nelle forms quali textBox, textArea, checkBox e cosi' via.
Selezione di oggetti nelle Forms |
Nome |
Funzione |
Esempio Javascript |
:input |
seleziona tutti gli oggetti input |
var array = $(":input"); |
:text |
seleziona solo le textbox |
var array = $(":text"); |
:password |
seleziona solo i campi password |
var array = $(":password"); |
:radio |
seleziona solo i radio button |
var array = $(":radio"); |
:checkbox |
seleziona solo le checkbox |
var array = $(":checkbox"); |
:submit |
seleziona solo i pulsanti di tipo submit |
var array = $(":submit"); |
:image |
seleziona solo i campi image |
var array = $(":image"); |
:reset |
seleziona solo i pulsanti di tipo reset |
var array = $(":reset"); |
:button |
seleziona tutti i pulsanti |
var array = $(":button"); |
:file |
seleziona i campi di tipo file |
var array = $(":file"); |
:hidden |
seleziona i campi nascosti |
var array = $(":hidden"); |
Le tipologie in tutto sono: per filtro, per visibilità, per contenuti, per attributi. Padri e figli. Trovate una guida dettagliata di come utilizzarli in questa pagina: JQuery selectors.
Una volta ottenuto l' array di oggetti che ci occorre, lo possiamo elaborare in un ciclo for e eseguire le nostre operazioni come nell' esempio:
Come elaborare un array di oggetti
function controllaText()
{
//Cerchiamo le text e visualizziamo il loro contenuto
var arrayText = $(":text");
for(x = 0; x < arrayText.length; x++)
{
alert(arrayText[x].value);
}
}
Lavorare con gli attributi.
Un altro grosso lavoro svolto da JQuery è quello di saper elaborare gli oggetti DOM tramite i loro attributi. In questo modo possiamo velocemente aggiungere una classe css, o modificare il testo di oggetto, o assegnare un valore ad una checkbox senza dover conoscere gli esatti nomi degli attributi, visto che nel DOM non sempre il testo di un oggetto si chiama text.
Elaborare il testo.
Con la funzione text(valore) possiamo inserire del testo a piacere in qualsiasi oggetto DOM che abbiamo precedentemente selezionato con il prototipo $(item).
In questo esempio modifichiamo con un' unico attributo text di JQuery il valore di un H3, di un P e di un qualunque oggetto con una classe .rosso.
Attributo text
<div id="Contenitore">
<h3 id="titolo">Gli attributi.</h3>
<p id="normale">Testo di esempio per questo contenitore.</p>
<p id="rosso" class="rosso"> Testo in paragrafo con id 'Nascosto'. </p>
<span>
<input type="button" onclick="modificaTesto();" value="Seleziona" /> </span>
</div>
function modificaTesto()
{
$("#titolo").text("Nuovo Titolo.");
$("#normale").text("Nuovo testo normale.");
$(".rosso").text("Nuovo testo rosso.");
}
Aggiungere e rimuovere classi CSS.
Un' altra utile funzione è quella di aggiungere o rimuovere classi CSS ai nostri elementi.
In questo modo possiamo mostrare o nascondere un elemento, oppure renderlo rosso per evidenziarlo. E cosi' via.
Mi verrebbe subito da pensare ad un alert da mostrare all' utente prima di un invio ad esempio.
Modifica attributo e classe
function visualizza(classe)
{
$("." + classe).addClass("visi");
alert($("#" + classe).attr("style"));
}
In questo caso la funzione passa il nome della classe del div nascosto. La nuova classe rende l' attributo visibility come visible e noi lo mostriamo a video.
Quindi possiamo accedere agli attributi con il loro nome DOM oppure cambiando la classe CSS direttamente.
Esistono molti altri attributi e metodologie con gli attributi fornite con JQuery. Nella pagina trovate una reference completa. JQuery Attributes.