Pre prácu s objektmi a poľami sa namiesto cyklov for a for in využívajú metódy knižníc použitých v projekte. V rámci knižnice jQuery je možné na prechádzanie objektov a polí používať metódu each(). Prvým argumentom metódy je premenná obsahujúca pole, prípadne pole. Druhým argumentom je callback - funkcia, ktorá sa bude spracovávať. Jej argumentmi sú index a element. Na pozadí metódy each() sa vykoná operácia element = Arr[index]. Príklad: Výpis prvkov poľa cez metódu each().
1
2
3
4
5
var Arr =["one", "two", "three", "four", "five"];
$.each(Arr, function(index, element){
console.log(element);
});
Príklad: Zadanie poľa ako argumentu.
1
2
3
4
$.each(["one", "two", "three", "four", "five"],
function(index, element){
console.log(element);
});
Prostredníctvom argumentu index je možné manipulovať s elementmi na príslušnej pozícii.Príklad: Manipulácia s prvkom na piatej pozícii.
1
2
3
if(index == 4){
// programový kód
}
V callbacku je možné nahradiť argument element za objekt this v tele funkcie. Nevýhodou takto skráteného zápisu hlavičky callbacku je potreba použitia metódy toString() pre zobrazenie hodnoty typu string. Príklad: Skrátený zápis callback funkcie.
1
2
3
4
5
var Arr =["one", "two", "three", "four", "five"];
$.each(Arr, function(index){
console.log(this.toString());
});
Podobne je možné postupovať aj pri prechádzaní objektov.Príklad: Výpis obsahu objektu.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var Obj ={
property1: "Property 1",
property2: "Property 2",
method1: function(){
console.log("Method 1");
},
method2: function(){
console.log("Method 2");
},
obj: {property3: "Property 3"}
}
$.each(Obj, function(key, value){
console.log(key +" : "+ value);
});
Príklad: Použitie objektu this.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var Obj ={
property1: "Property 1",
property2: "Property 2",
method1: function(){
console.log("Method 1");
},
method2: function(){
console.log("Method 2");
},
obj: {property3: "Property 3"}
}
$.each(Obj, function(key){
console.log(key +" : "+ this);
});
Pre výpis obsahu objektu je možné použiť len objekt this. Nevýhodou tohto výpisu je, že reťazce sú vypísané ako objekty obsahujúce index a príslušné písmeno. Príklad: Výpis objektu this.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var Obj ={
property1: "Property 1",
property2: "Property 2",
method1: function(){
console.log("Method 1");
},
method2: function(){
console.log("Method 2");
},
obj: {property3: "Property 3"}
}
$.each(Obj, function(){
console.log(this);
});
Záver
Metóda each() môže byť použitá aj spôsobom $(object).each(). Tomuto typu zápisu sa budem venovať pri prechádzaní uzlov prostredníctvom jQuery. 3.2.2013 (aktualizované 28.2.2013), Matej LednárKategória: jQueryjQuery,programovanie,JavaScript,iterátor,iterácia,framework,for in,each,callbackŽiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.Viac informácií nájdete v sekcii O projekte.