web-dev-qa-db-fra.com

définir la valeur de la liste déroulante par texte à l'aide de jquery

J'ai un menu déroulant comme:

<select id="HowYouKnow" >
  <option value="1">FRIEND</option>
  <option value="2">GOOGLE</option>
  <option value="3">AGENT</option></select>

Dans la liste déroulante ci-dessus, je connais le texte de la liste déroulante. Comment définir la valeur du menu déroulant dans document.ready avec le texte utilisant jquery?

79
Prasad

C'est une méthode qui fonctionne en fonction du text de l'option, pas de l'index. Juste testé.

var theText = "GOOGLE";
$("#HowYouKnow option:contains(" + theText + ")").attr('selected', 'selected');

Ou, s'il y a des valeurs similaires (merci shanabus):

$("#HowYouKnow option").each(function() {
  if($(this).text() == theText) {
    $(this).attr('selected', 'selected');            
  }                        
});
202
Peter J

Pour l'utilisation exacte du match 

    $("#HowYouKnow option").filter(function(index) { return $(this).text() === "GOOGLE"; }).attr('selected', 'selected');

contient va sélectionner le dernier match qui pourrait ne pas être exact.

11
Parham
$("#HowYouKnow option[value='" + theText + "']").attr('selected', 'selected'); // added single quotes
5
Vinay saini

Pour GOOGLE, GOOGLEDOWN, GOOGLEUP, c’est le même type de valeur que vous pouvez essayer ci-dessous code

   $("#HowYouKnow option:contains('GOOGLE')").each(function () {

                        if($(this).html()=='GOOGLE'){
                            $(this).attr('selected', 'selected');
                        }
                    });

De cette manière, le nombre d'itérations de boucle peut être réduit et fonctionnera dans toutes les situations.

1
juhi

Le code ci-dessous fonctionne pour moi -:

jQuery('[id^=select_] > option').each(function(){
        if (this.text.toLowerCase()=='text'){
            jQuery('[id^=select_]').val(this.value);
        }
});

jQuery ('[id ^ = select_]') - Ceci vous permet de sélectionner un menu déroulant où l'ID du menu déroulant commence par select_

J'espère que ce qui précède aide!

Salutations S

1
stevensagaar
var myText = 'GOOGLE';

$('#HowYouKnow option').map(function() {
    if ($(this).text() == myText) return this;
}).attr('selected', 'selected');
1
Matthew Feerick

essaye ça..

$(element).find("option:contains(" + theText+ ")").attr('selected', 'selected');
1
Divy
$("#HowYouKnow").val("GOOGLE");
1
dell

Ceci est travaillé à la fois chrome et firefox

définir la valeur dans la liste déroulante.

var given = $("#anotherbox").val();
$("#HowYouKnow").text(given).attr('value', given);
0
Naveenbos

Voici un exemple simple:

$("#country_id").change(function(){
    if(this.value.toString() == ""){
        return;
    }
    alert("You just changed country to: " + $("#country_id option:selected").text() + " which carried the value for country_id as: " + this.value.toString());
});
0
fullstacklife