установить выпадающее значение по тексту с помощью jquery [дубликат]


этот вопрос уже есть ответ здесь:

  • Установка выбора по метке через jquery в 1.4 4 ответы

У меня есть выпадающий в виде:

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

в приведенном выше выпадающем списке я знаю текст выпадающего списка. Как можно установить значение выпадающего списка в документе.готовы с текстом с помощью jquery?

11 79

11 ответов:

Это метод, который работает на основе текст опции, а не Индекс. Просто проверено.

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

или, если есть аналогичные значения (спасибо shanabus):

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

для точного совпадения используйте

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

contains собирается выбрать последнее совпадение, которое может быть не точным.

$("#HowYouKnow option[value='" + theText + "']").attr('selected', 'selected'); // added single quotes
$("#HowYouKnow").val("GOOGLE");
var myText = 'GOOGLE';

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

для GOOGLE, GOOGLEDOWN, GOOGLEUP т. е. аналогичное значение вы можете попробовать ниже кода

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

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

таким образом,количество итераций цикла может быть уменьшена и будет работать во всех ситуациях.

ниже код работает для меня:

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

jQuery ('[id^=select_]') - Это позволяет выбрать выпадающее меню, где идентификатор выпадающего меню начинается с select_

надеюсь, что выше помогает!

Ура S

попробуйте это..

$(element).find("option:contains(" + theText+ ")").attr('selected', 'selected');

вот простой пример:

$("#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());
});

это работает как chrome и firefox

установите значение в раскрывающемся списке.

var given = $("#anotherbox").val();
$("#HowYouKnow").text(given).attr('value', given);
$("#HowYouKnow option:eq(XXX)").attr('selected', 'selected');

где XXX-это индекс того, который вы хотите.