2016-07-23 3 views
1

Использование JQuery 1.11, у меня возникли проблемы с выбором опции. Я знаю, что текст варианта, и поэтому я используюКак заставить параметр выбрать из моего меню выбора в JQuery?

.find('option[text="Canada"]') 

но мое выражение не местонахождение пункта, несмотря на то, что в консоли (выход перечисленного ниже), вы можете ясно видеть, есть вариант, который гласит «Канада».

> $('.countryField') 
[<select id=​"user[address]​_country" name=​"user[address]​[country]​" class=​"countryField select-hidden">​…​</select>​<option value=​"0">​-- Select --​</option>​<option value=​"38">​Canada​</option>​…​<option value=​"249">​Zimbabwe​</option>​</select>​] 
> $('.countryField').find('option[text="Canada"]') 
[] 

Что я делаю неправильно? В конечном счете, я хочу, чтобы атрибут «selected» был включен для данного параметра с заданным текстом (и у всех остальных параметров нет атрибута «selected»).

ответ

0

Вы можете попробовать один из следующих вариантов.

$(".countryField option").each(function(){ 
    if ($(this).text() == "Canada") 
    $(this).attr("selected","selected"); 
}); 


$(".countryField option[value='Canada']").attr("selected","selected"); 
+0

Так что это будет выбрать вариант с текстом, но он будет также отменить все другие варианты? –

+0

Если вы выбрали одиночный выбор, тогда да –

+0

Это единственный выбор, но я не нахожу, что вы говорите выше, чтобы быть правдой. То есть выбранный атрибут «selected =» выбран «» остается на опцию, которая была ранее выбрана. –

0

Для выбора элемента можно использовать только jQuery val.

$(function() { 
 
    $("#speed").selectmenu(); 
 

 
    // select the Canada option 
 
    $("#speed").val('Canada'); 
 
    $("#speed").selectmenu('refresh'); 
 
    
 
    // instead if you need to get the option with Canada text 
 
    var selectedEle = $("#speed option").filter(function(i, e) {return $(e).text() == 'Canada';}); 
 
    console.log(selectedEle[0].outerHTML); 
 
});
#speed { 
 
    width: 200px; 
 
}
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 

 
<select name="speed" id="speed"> 
 
    <option>Slower</option> 
 
    <option>Slow</option> 
 
    <option selected="selected">Medium</option> 
 
    <option>Fast</option> 
 
    <option>Faster</option> 
 
    <option>Canada</option> 
 
</select>

Смежные вопросы