jQuery - définition de la valeur sélectionnée d'un contrôle de sélection via sa description textuelle

J'ai un contrôle de sélection, et dans une variable javascript, j'ai une chaîne de texte.

À l'aide de jQuery, je veux que l'élément sélectionné du contrôle de sélection soit l'élément contenant la description textuelle que j'ai (par opposition à la valeur, que je n'ai pas).

Je sais que la définition de la valeur est assez simple, par exemple

$("#my-select").val(myVal);

Mais j'ai un peu de mal à le faire via la description textuelle. Je suppose qu'il doit y avoir un moyen d'extraire la valeur de la description textuelle, mais mon cerveau est trop fatigué pour y parvenir.

Solution

Sélectionner par description pour jQuery v1.6+

var text1 = 'Two';
$("select option").filter(function() {
  //may want to use $.trim in here
  return $(this).text() == text1;
}).prop('selected', true);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select>
  One
  Two
Commentaires (15)

Je ne l'ai pas testé, mais cela pourrait fonctionner pour vous.

$("select#my-select option")
   .each(function() { this.selected = (this.text == myVal); });
Commentaires (0)

Obtenez les enfants de la boîte de sélection ; bouclez à travers eux ; lorsque vous avez trouvé celui que vous voulez, définissez-le comme l'option sélectionnée ; retournez false pour arrêter la boucle.

Commentaires (0)