JQUERY Recuperer toutes les values d'une liste (select)

Résolu
BadGamer Messages postés 694 Statut Membre -  
BadGamer Messages postés 694 Statut Membre -
Bonjour,
J'ai une liste sous cette forme:


<select id="liste" align="top" name="liste" size="5">

<option value="<author>Thomas Nom</author>">Thomas Nom</option>
<option value="<author>Thomas Nom2</author>">Thomas Nom2</option>
</select>

Elle affiche donc
Thomas Nom
Thomas Nom2

Mais contient en value la chaine avec des balises <author> ( c'est pour l'exemple)
Je voudrais récupérer dans une variable la chaine suivante:
<author>Thomas Nom</author><author>Thomas Nom2</author>

mais quand je fait:

function synchroListeTextBox(){
var $listeAuteur=($("#liste")).val();
alert($listeAuteur);
}
Je n'ai que l'auteur selectionné dans la liste qui arive.
Auriez vous une idée pour looper dans tout les éléments de la liste et les ajouter un a un a une variable ?
Merci d'avance

3 réponses

  1. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    var values = '';
     
    $('#liste option').each(function() { values += $(this).val(); });
     
    console.log(values);
    
    6
    1. BadGamer Messages postés 694 Statut Membre 133
       
      Merci ça fonctionne !
      0
  2. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
     
    Salut,

    essaie un truc du genre :

    $('author').each(function(){
       // ton code
    });
    1
    1. Pitet Messages postés 2845 Statut Membre 530
       
      'author' n'est pas considéré comme une balise car cette dernière est dans l'attribut value de la balise option
      0
    2. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
       
      exact, j'avais lu en diagonales... dans ce cas un simple $('option') ou ce que tu proposes ira très bien ^^
      0
  3. BadGamer Messages postés 694 Statut Membre 133
     
    C'est bon j'ia trouvé tout seul:

    function synchroListeTextBox(){
        var $nb=($("#liste")).length;
        for(var i=0;i<$nb;i++)
        {
            var $listeAuteur=$listeAuteur+($("#liste"))[i].value
        }
        alert($listeAuteur);
    


    Merci quand même !
    1
    1. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
       
      Tu te compliques la vie ;) essaie d'utiliser la réponse de Pitet plutôt.

      D'ailleurs, ton code ne va pas fonctionner étant donné que tu réinitialises la variable listeAuteur à chaque tour de ta boucle.
      Les variables ne prennent pas de $ en js non plus.

      Non, honnêtement, prends le code de Pitet ;)
      0