2010-11-19 8 views
24

tengo el siguiente código HTMLCómo utilizar jQuery para seleccionar la opción enésima

<select onchange="this.form.submit()" name="name"> 
    <option value="9995101E01#17201044055PM">9995101E01#17201044055PM</option> 
    <option value="GRR-Example">GRR-Example</option> 
    <option value="admin">admin</option> 
    <option value="123w">123w</option> 
</select> 

¿Puedo saber cómo puedo usar jQuery para la opción con el valor "admin"?

Respuesta

71
$('select[name=name] option:eq(2)').attr('selected', 'selected'); 

Demo.

9

De esta manera:

$("select[name='name'] option:eq(2)").attr("selected", "selected"); 

EDIT:

para hacer lo que quiere en su nueva edición, es decir, seleccione la opción que tiene el valor de admin:

$("select[name='name'] option:contains('admin')").attr("selected", "selected"); 

See it working.

+0

¿Cómo puedo pasar una variable en su lugar? Estoy tratando de lograr $ ('# id' opción: eq (variable_name) "). Attr (" selected "," selected "); – Naveen

+0

Llamar val() en una lista de selección seleccionará automáticamente la opción con ese valor. Por lo tanto, esto debería funcionar: $ ("select [name = 'name']"). Val ('admin'); – Jordan

+0

Me di cuenta de que al usar este enfoque "onchange" no se activa, nadie sabe de qué manera para lograr esto? –

5

creo que la pseudo-clase nth-child es lo que está buscando:

$('select option:nth-child(3)').attr('selected', 'selected'); 
2

Me gustaría no aconsejo el valor de ajuste de select utilizando .attr('selected', 'selected'). Es una mala práctica. Si dos opciones tienen el atributo "seleccionado", ¿cuál es el valor de seleccionar?

Aquí es la versión simple y fácil que funcione:

$('select[name="name"]').val('admin'); 

DEMO

0

Si desea seleccionar la opción enésima y gatillo onchange evento a continuación:

function selectOption(nr) { 
    var select = $("select"); 
    if (select.children().length >= nr) { 
     let value = select.find('option:eq(' + nr + ')').val(); 
     select.val(value).change(); 
    } 
} 
0

Justo actualización en caso de que ayude a alguien. Tenía un requisito similar, pero en mi caso, el menú desplegable se almacenaba como una variable de JavaScript. También me gustó cómo Denis Matafonov sugirió seleccionar la opción en cuestión. Así que aquí está el último bloque de código:

var target_dd = $('select[name=name]'); 
$(target_dd).val($(target_dd).find('option:eq(2)').html()); 
Cuestiones relacionadas