[RESOLU:CONTOURNE] [jQuery] each imbriqué

each imbriqué [RESOLU:CONTOURNE] [jQuery] - HTML/CSS - Programmation

Marsh Posté le 27-09-2011 à 22:14:07    

Bonjour à tous,
Je suis vaincu par des each :p
 
Le but est de parcourir un ensemble de select (dont le nombre est inconnu), de récupérer les "options" selectionnées, mettre à jour les options des selects avec la mise à jour (ajout, modification, suppression), et d'y reselectionner les options qui l'étaient avant, si elles existent toujours.
 
Pour ça, j'aurai voulu faire 2 .each() imbriqués.
Le premier se passe bien, bien que je comprend pas bien ce que contient "element", puisqu'il faut se servir de "this". (mais il contient un objet, c'est sûr)
Le deuxième each bloque, il ne fait pas d'erreur, il bloque l'exécution... :o
 
Voilà le code.  Ce qui est en commentaire sont d'autre tentative... je n'ai plus d'idée !! :/
 

Code :
  1. function mettreAJourLesSelectDesGroupesUtilisateur(){
  2. console.debug("mettreAJourLesSelectDesGroupesUtilisateur()" );
  3. var listeDesGroupesVal = new Array();
  4. var listeDesGroupesText = new Array();
  5. $(".listeGroupe" ).each(function(index, element){
  6.  listeDesGroupesVal[index] = $(this).attr("value" );
  7.  listeDesGroupesText[index] = $(this).attr("id" );
  8.  //console.debug("valeur :" + element.attr("value" ) + " text : " + element.attr("id" ) + "  " );
  9.  //console.debug(index + element);
  10. });
  11. $(".listeGroupeSurUtilisateur" ).each(function(index, element){
  12.  var listeGroupeSelectionne = new Array();
  13.  var j = 0;
  14.  var idCourant = $(this).attr("id" );
  15.  console.debug(idCourant);
  16.  console.debug($("#"+idCourrant).val());
  17.  /*each(function(indexSelect, elementSelect){
  18.  
  19.   //console.debug($(this).text());
  20.  
  21.  });
  22.  
  23.  /*
  24.  $( this + " option:selected" ).each(function () {
  25.  /*
  26.   listeGroupeSelectionne[j] = $(this).val();
  27.   console.debug($("#" + this).val() + " " );
  28.    
  29.  });
  30.  /*
  31.  var optionString = "";
  32.  for(i = 0; i <= listeDesGroupesVal.length  ;i=i+1){
  33.  
  34.   optionString = optionString + "<option value=\"" + listeDesGroupesVal[i];
  35.   var wasSelectedElement = false;
  36.   for(j = 0; j <= listeGroupeSelectionne.length  ;j=j+1){
  37.    if (listeGroupeSelectionne[j] ==  listeDesGroupesVal[i]) {
  38.     wasSelectedElement = true;
  39.    }
  40.   }
  41.    
  42.   if (wasSelectedElement) {
  43.    optionString = optionString + " selected=\"selected\" ";
  44.   }
  45.    
  46.   optionString = optionString + ">" + listeDesGroupesText[i] + "</option>";
  47.   console.debug(optionString + "\n\n" );
  48.  }
  49.  */
  50. });
  51. console.debug("...()2" );
  52. }


 
Merci de votre aide !


Message édité par naeco le 28-09-2011 à 11:28:02
Reply

Marsh Posté le 27-09-2011 à 22:14:07   

Reply

Marsh Posté le 28-09-2011 à 11:27:22    

Je me suis arrangé pour que ça soit plus imbriqué.

Reply

Marsh Posté le 02-10-2011 à 20:44:18    

Je pense que c'est effectivement du au this.
this n'est pas une chaine que tu peux concatener.
 
La reponse se trouve dans ce topic :
 
http://stackoverflow.com/questions [...] d-children

Reply

Marsh Posté le 02-10-2011 à 20:52:03    

merci, intéressant, ça me servira surement ailleurs !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed