Je débarque sans doute de la dernière pluie, mais je tiens à vous faire partager une petite découverte que j'ai faite hier soir.

En réfléchissant sur le each de JQuery, je me disais qu'il servait à parcourrir des collections...
Je me demandais si ce each pouvait servir pour travailler sur les arrays et autres collections javascript.

j'ai tenté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
var chaine ="un;deux;trois;quatre;cinq;six"
var tab = chaine.split(';')
tab.each(function(){alert($(this))})
Qui me retourna un beau:
cet objet ne gère pas cette methode
En fouillant un peu j'ai découvert ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
var chaine ="un;deux;trois;quatre;cinq;six"
var tab = chaine.split(';')
$.each(tab,function(){alert(this)})
appliquable également sur les objets json:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
var obj={un:{en:'one',de:'ein'},deux:{en:'two',de:'zwei'},trois:{en:'three',de:'drei'}}
$.each(obj,function(){alert(this.en)})
$.each(obj,function(){alert(this.de)})

En revanche une chose m'échappe, pourquoi ceci ne fonctionne-t-il pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
var doo={ truc: function(param){alert(param)}  }
doo.truc('hello') // j'ai bien un hello 
$.each(doo,this('bonjour')) //j'ai une erreur 
$.each(doo,this)('bonjour') // erreur aussi
Et avec ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
var doo={ truc: function(param){alert(param)} ,machin: function(param){alert('encore\n'+param)} }
doo.truc('hello')
$.each(doo,function(foo){this(foo)}  )
le paramètre passé est la clef ????