2016-08-03 3 views
0

Я использую JQuery 1.8. Я хочу, чтобы выбрать опцию в меню выбора по значению, поэтому я использую это заявлениеКак выбрать только первый параметр, соответствующий значению с помощью jquery?

$('.countryField').find('option[value="233"]') 

однако, проблема с выше, если есть несколько вариантов с тем же значением, все выбраны. Как настроить приведенный выше оператор так, чтобы был выбран только один параметр? Не стесняйтесь сообщать мне и лекции о том, как не следует выбирать меню с несколькими вариантами с одинаковыми значениями.

Edit: Вот вывод консоли в ответ на одно из предложений данного

> $('.countryField').find('option').prop('selected', false) 
jQuery.fn.init[255] 
> $('.countryField').find('option[value="233"]:first').prop('selected', true) 
[<option value=​"233" selected=​"selected">​United States​</option>​] 
> $('.countryField').find('option[selected="selected"]') 
[<option value=​"233" selected=​"selected">​United States​</option>​, <option selected=​"selected" value=​"233">​United States​</option>​] 
+0

В ответ на ваши изменения - вы устанавливаете 'selected' ** ** свойство, а затем выбрать элементы с' выбран ** атрибут **. Обновление значения свойства объекта не изменяет его атрибуты элемента html. Ответы на установление свойства верны, но вы не выбираете правильно - https://jsfiddle.net/h9neus61/ –

ответ

0

Вы можете использовать :first селектор здесь, выбирающий первый согласованный DOM элемент.

$('.countryField').find('option[value="233"]:first') 
+0

Это не работает. Я включил консоль ouptut в моем редактировании. После применения вашего предложения есть еще два варианта. –

+0

У вас есть несколько элементов 'countryField' на странице? –

+0

Проверьте, сколько элементов 'countryField' вы выбираете на странице, например' $ ('. CountryField'). Length'. Затем вы можете выбрать один список выбора, например '$ ('. CountryField: first'). Length', затем проверить' $ ('. CountryField: first'). Find ('option [value = "233"]: first') .length' & '$ ('. countryField: first'). find ('option [selected =" selected "]'). length' –

0

: eq (0) будет использоваться для выбора первого варианта со значением «233», и он будет выбран.

$('.countryField [value="233"]:eq(0)').prop('selected', true); 
+0

Как и с предложением Палаша, это также не работает. Редактирование в моем вопросе отображает вывод. Если вы замените «$ ('. CountryField»), найдите (' option [value = "233"]: first ') "с вашим предложением, выход по-прежнему остается двумя выбранными параметрами. –

0

это также может быть сделано с чистым Javascript

document.querySelector(' .countryField option').setAttribute('selected','selected') 
+0

Все это означает, что в списке выбран первый параметр hte. Он ничего не выбирает или не отменяет. –

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