2009-09-08 14 views

Respuesta

174

Pruebe este ou t ...

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

Otra opción sería algo así como this, pero sólo funcionará para una lista desplegable a la vez hacia abajo como codificado a continuación:

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

Tome un vistazo a este post en Cómo establecer la base del valor, es interesante, pero no le ayudará en este tema específico:

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

+0

acaba de cambiar MyID para seleccionar como quiero todas las etiquetas de selección –

+22

ahora en jQuery puede acceder a las propiedades a través del método '.prop()'. Así que podría usar '$ (" seleccionar "). Prop (" selectedIndex ", 0);' para una forma rápida de seleccionar la primera opción en todas las listas desplegables. –

+2

¿Sabes si esto activará un evento de "cambio" en todos los navegadores simplemente configurando el atributo? Parece en Chrome, pero no lo han probado extensivamente. Estaba pensando en agregar otro '$ ('select'). Trigger ('cambio');' por las dudas. ¡Gracias! –

12

Su selector está mal, fueron probablemente en busca de

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

Esto funcionará también:

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

CSS índice selector de nth-child comienza en 1, no 0 –

4

Lo que se quiere es probablemente:

$("select option:first-child") 

Lo que este código

attr("selected", "selected"); 

está haciendo es establecer el atributo "seleccionado" a "seleccionado"

Si desea que las opciones seleccionadas, independientemente de si es la primera en el niño , el selector es:

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

Reemplace 'attr' con' prop' si está usando jQuery 1.6+ –

1

si desea comprobar el texto de la opción seleccionada independientemente de si es el 1 st niño.

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

Me ha guardado una segunda búsqueda. Esto es más o menos lo que estaba buscando, aunque estaba más interesado en cambiar el valor que en verificarlo. '$ ('# opción myID: seleccionado'). text ('NEW STRING');' –

8

Ana solución alternativa para RSolgberg, lo que desencadena el evento 'onchange' si está presente:

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

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

+1

Esto funciona mejor que la respuesta aceptada si tiene que cambiar la opción seleccionada varias veces. P.ej. si filtra sus opciones y muestra una parte de ellas. –

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

Estoy respondiendo porque las respuestas anteriores han dejado de funcionar con la última versión de jQuery. No sé cuándo dejó de funcionar, pero la documentación dice que .prop() ha sido el método preferido para obtener/establecer propiedades desde jQuery 1.6.

Esta es la forma en que tengo que trabajar (con jQuery 3.2.1):

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

estoy usando knockoutjs y las fijaciones de cambio no estaban disparando con el código anterior, por lo que añade.cambiar() hasta el final.

Esto es lo que necesitaba para mi solución:

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

Ver .prop() señala en la documentación aquí: http://api.jquery.com/prop/

Cuestiones relacionadas