2009-09-08 4 views

ответ

174

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

$('select option:first-child').attr("selected", "selected"); 

Другим вариантом было бы что-то вроде this, но он будет работать только для одного выпадающего списка в то время, как кодируются ниже:

var myDDL = $('myID'); 
myDDL[0].selectedIndex = 0; 

Посмотрите на эту должность как установить на основе значения, его интересным, но не поможет в этом конкретном вопросе:

Change the selected value of a drop-down list with jQuery

+0

просто изменить MyId для выбора, поскольку я хочу, чтобы все теги select –

+22

теперь в jQuery, вы можете получить доступ к свойствам с помощью метода '.prop()'. Таким образом, вы можете использовать '$ (" select "). Prop (" selectedIndex ", 0);' для быстрого выбора первого варианта во всех выпадающих меню. –

+2

Знаете ли вы, что это вызовет событие «изменения» во всех браузерах, просто установив атрибут? Кажется, что в Chrome, но он не тестировал его широко. Я думал о добавлении другого '$ ('select'). Trigger ('change');' на всякий случай. Благодаря! –

12

Ваш селектор не так, вы, вероятно, искали

$('select option:nth-child(1)') 

Это будет работать также:

$('select option:first-child') 
+3

CSS начинается с 1, а не 0 –

4

То, что вы хотите, вероятно:

$("select option:first-child") 

Этот код

attr("selected", "selected"); 

делает, установив «выбран» атрибут «выбран»

Если вы хотите, выбранные опции, независимо от того, является ли это первый-ребенок , селектор:

$("select").children("[selected]") 
+0

Замените 'attr' на' prop', если вы используете jQuery 1.6+ –

1

Если вы хотите проверить текст выбранной опции, независимо от того, является ли ее 1 й ребенок.

var a = $("#select_id option:selected").text(); 
alert(a); //check if the value is correct. 
if(a == "value") {-- execute code --} 
+0

Сохраненный мной второй поиск. Это в значительной степени то, что я искал, хотя меня больше интересовало изменение ценности, чем проверка. '$ ('# myID option: selected'). text ('NEW STRING');' –

8

Ана альтернативное решение для RSolgberg, который запускает 'onchange' событие, если присутствует:

$("#target").val($("#target option:first").val()); 

How to make first option of <select > selected with jQuery?

+1

Это работает лучше, чем принятый ответ, если вам нужно несколько раз изменить выбранный параметр. Например. если вы отфильтруете свои варианты и отобразите их часть. –

1
var arr_select_val=[]; 

    $("select").each(function() { 
     var name=this.name; 
      arr_select_val[name]=$('select option:first-child').val(); 
    }); 


// Process the array object 
    $('.orders_status_summary_div').print(arr_select_val); 
1

Я отвечаю, потому что предыдущие ответы перестали работать с последней версией jQuery. Я не знаю, когда он прекратил работать, но в документации говорится, что .prop() был предпочтительным методом получения/установки свойств с jQuery 1.6.

Это, как я получил его на работу (с JQuery 3.2.1):

$('select option:nth-child(1)').prop("selected", true); 

Я использую knockoutjs и привязки изменения не палили с указанным кодом, так что я добавил.change() до конца.

Вот что мне нужно для моего решения:

$('select option:nth-child(1)').prop("selected", true).change(); 

См .prop() отмечает в документации здесь: индекс селектор п-й ребенок http://api.jquery.com/prop/

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