Per quanto riguarda gli oggetti, le due funzioni offerte da jQuery sono each e extend.
each
$.each() permette di definire operazioni da compiere ciclicamente su tutti gli elementi di una collezione, è molto simile a $.map()
, ma accetta sia array che oggetti JavaScript come primo argomento.
Nel caso che segue vediamo che la funzione interna ha come argomenti le chiavi e i valori di un oggetto. Inoltre è possibile interrompere il ciclo inserendo un return false
:
var oggetto = {"uno":"primo","due":"secondo","tre":"terzo"} var oggettoFinale = {}; //un oggetto vuoto $.each(oggetto,function (chiave,valore) { oggettoFinale[chiave] = valore; if (chiave == "due") { // esce alla chiave 2 return false; } }); //oggettoFinale = {"uno":"primo","due":"secondo"}
extend
$.extend() estende l'oggetto passato come primo parametro con le proprietà del secondo. È importante ricordare è che la funzione modifica direttamente il primo oggetto e sovrascrivendone le chiavi:
var oggetto1 = {"uno":"primo","due":"due"}; var oggetto2 = {"due":"secondo"}; // oggetto1.due == "due" $.extend(oggetto1,oggetto2); // oggetto1.due == "secondo"
Per essere sicuri di non modificare, sovrascrivendole, le proprietà degli oggetti pre-esistenti è necessario creare un nuovo oggetto passando come primo argomento un oggetto vuoto:
var oggetto1 = {"uno":"primo","due":"due"}; var oggetto2 = {"due":"secondo"}; var oggetto3 = $.extend({},oggetto1,oggetto2); // oggetto1.due == due // oggetto3.due == secondo
Serializzare gli elementi
Come visto nella lezione su AJAX è possibile passare dei dati da inviare al server sotto forma di oggetto o stringa serializzata del tipo "chiave=valore&..."
.
A questo scopo si può utilizzare $.param()
, che accetta sia un oggetto JavaScript che una collezione di elementi form, i cui dati verranno serializzati rispettivamente nelle forme chiave=valore
e nomecampo=valore
.
var oggetto = {"uno":"primo","due":"due"}; var stringa = $.param({"uno":"primo","due":"due"}); //stringa = "uno=primo&due=secondo"
Lavorare sulle stringhe
L'unica funzione introdotta in jQuery per manipolare le stringhe è $.trim(), con la quale gli spazi all'inizio ed alla fine della stringa vengono eliminati:
$.trim(" stringa "); // restituisce "stringa"
Lavorare sulle funzioni
A differenza di altri framework, jQuery fornisce un'unica utility da utilizzare sulle funzioni, $.isFunction()
, che restituisce true
o false
se l'argomento passato è una funzione o meno.