226 votes

Itération dans les options de <sélection>.

J'ai un <select> en HTML. Cet élément représente une liste déroulante. J'essaie de comprendre comment itérer parmi les options de l'élément <select> via JQuery.

Comment puis-je utiliser JQuery pour afficher la valeur et le texte de chaque option dans une <select> élément ? Je veux juste les afficher dans un alert() boîte.

392voto

karim79 Points 178055
$("#selectId > option").each(function() {
    alert(this.text + ' ' + this.value);
});

2 votes

C'est bizarre, ça devrait marcher mais pour une raison quelconque, ça ne marche pas pour moi... :(

15 votes

Ce devrait être $(this).val() au lieu de this.value comme le dit IT ppl.

0 votes

Seule la réponse de IT ppl a fonctionné pour moi (et ce n'était pas seulement le "ceci").

89voto

IT ppl Points 1558

Cela a fonctionné pour moi

$(function() {
    $("#select option").each(function(i){
        alert($(this).text() + " : " + $(this).val());
    });
});

6 votes

Si vous avez stocké $(this) dans une variable, ce serait plus efficace, à savoir var $this = $(this); $this.text(); $this.val();...etc.

31voto

Arun Pratap Singh Points 177

Peuvent également être paramétrés chacun avec l'index et l'élément.

$('#selectIntegrationConf').find('option').each(function(index,element){
 console.log(index);
 console.log(element.value);
 console.log(element.text);
 });

// ceci fonctionnera également

$('#selectIntegrationConf option').each(function(index,element){
 console.log(index);
 console.log(element.value);
 console.log(element.text);
 });

28voto

rogerdpack Points 12806

Et la manière requise, non jquery, pour les followers, puisque google semble envoyer tout le monde ici :

  var select = document.getElementById("select_id");
  for (var i = 0; i < select.length; i++){
    var option = select.options[i];
    // now have option.text, option.value
  }

6voto

Jeyko Caicedo Points 51

Si vous ne voulez pas de Jquery (et pouvez utiliser ES6)

for (const option of document.getElementById('mySelect')) {
  console.log(option);
}

0 votes

Les réponses sous forme de code uniquement sont découragées. Veuillez expliquer en quoi cette réponse résout le problème ou en quoi elle diffère des réponses existantes. De la revue

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X