Si conoce el índice, el valor o el texto. también si no tiene una identificación para una referencia directa.
Esto , esto y esto son respuestas útiles.
Marcado de ejemplo
<div class="selDiv">
<select class="opts">
<option selected value="DEFAULT">Default</option>
<option value="SEL1">Selection 1</option>
<option value="SEL2">Selection 2</option>
</select>
</div>
$("#my_select").val("the_new_value").change();
... ... de tanRespuestas:
Un selector para obtener el elemento de opción medio por valor es
Para un índice:
Para un texto conocido:
EDITAR : Como se comentó anteriormente, el OP podría haber estado después de cambiar el elemento seleccionado del menú desplegable. En la versión 1.6 y superior, se recomienda el método prop ():
En versiones anteriores:
EDIT2 : después del comentario de Ryan. Una coincidencia en "Selección 10" podría no ser deseada. No encontré ningún selector que coincida con el texto completo, pero funciona un filtro :
EDITAR3 : Tenga cuidado con,
$(e).text()
ya que puede contener una nueva línea que hace que la comparación falle. Esto sucede cuando las opciones están implícitamente cerradas (sin</option>
etiqueta):Si simplemente utiliza
e.text
cualquier espacio en blanco adicional, como la nueva línea final, se eliminará, lo que hará que la comparación sea más sólida.fuente
Ninguno de los métodos anteriores proporcionó la solución que necesitaba, así que pensé que proporcionaría lo que funcionó para mí.
fuente
prop
y noattr
..attr
es correcto. "selected" es un atributo de la <opción> w3.org/TR/html5/forms.html#attr-option-selectedprop
con preferencia aattr
. Eso ahorra tener que buscar todas y cada una de las propiedades en w3.org para ver si es solo un atributo o implementado con acciones de respaldo.Puedes usar el
val()
método:fuente
the_value
. ¡.val no es función de selector / filtro! Es un descriptor de acceso de propiedad y pasarle esa cadena establece el valor. Traté de recuperar mi voto a favor, pero fue demasiado tarde después de que realicé esto en las pruebas.Por valor, lo que funcionó para mí con jQuery 1.7 fue el siguiente código, intente esto:
fuente
.change()
fue necesario. Tuve un ejemplo en el que estaba cambiando miniaturas basadas en un SELECT. Cuando cargué un tema personalizado, se suponía que debía seleccionar "Tema personalizado" de la lista de opciones. La.prop()
llamada funcionó, pero sin la.change()
imagen en miniatura a la derecha de mi selección nunca se actualizó.prop
valor booleano genera la misma salida. Por ejemplo.prop('selected', true)
Hay varias maneras de hacer esto, pero el enfoque más limpio se ha perdido entre las principales respuestas y un montón de argumentos
val()
. También algunos métodos cambiaron a partir de jQuery 1.6, por lo que esto necesita una actualización.Para los siguientes ejemplos, asumiré que la variable
$select
es un objeto jQuery que apunta a la<select>
etiqueta deseada , por ejemplo, a través de lo siguiente:Nota 1: use val () para las coincidencias de valor:
Para la coincidencia de valores, usar
val()
es mucho más simple que usar un selector de atributos: https://jsfiddle.net/yz7tu49b/6/La versión setter de
.val()
se implementa en lasselect
etiquetas configurando laselected
propiedad de una coincidenciaoption
con la mismavalue
, por lo que funciona bien en todos los navegadores modernos.Nota 2 - use prop ('selected', true):
Si desea establecer el estado seleccionado de una opción directamente, puede usar
prop
(noattr
) con unboolean
parámetro (en lugar del valor de textoselected
):por ejemplo, https://jsfiddle.net/yz7tu49b/
Nota 3: permita valores desconocidos:
Si usa
val()
para seleccionar un<option>
, pero el valor no coincide (puede suceder dependiendo de la fuente de los valores), entonces se selecciona "nada" y$select.val()
volveránull
.Entonces, para el ejemplo que se muestra, y en aras de la robustez, podría usar algo como esto https://jsfiddle.net/1250Ldqn/ :
Nota 4 - coincidencia exacta del texto:
Si desea hacer coincidir el texto exacto, puede usar una
filter
función con. por ejemplo, https://jsfiddle.net/yz7tu49b/2/ :aunque si tiene espacio en blanco adicional, puede agregar un recorte al cheque como en
Nota 5 - coincidencia por índice
Si desea hacer coincidir por índice, simplemente indexe los elementos secundarios de la selección, por ejemplo, https://jsfiddle.net/yz7tu49b/3/
Aunque tiendo a evitar las propiedades DOM directas a favor de jQuery hoy en día, a un código a prueba de futuro, eso también podría hacerse como https://jsfiddle.net/yz7tu49b/5/ :
Nota 6: use change () para activar la nueva selección
En todos los casos anteriores, el evento de cambio no se dispara. Esto es por diseño para que no termines con eventos de cambio recursivo.
Para generar el evento de cambio, si es necesario, simplemente agregue una llamada al objeto
.change()
jQueryselect
. Por ejemplo, el primer ejemplo más simple se convierte en https://jsfiddle.net/yz7tu49b/7/También hay muchas otras formas de encontrar los elementos utilizando selectores de atributos, como
[value="SEL2"]
, pero debe recordar que los selectores de atributos son relativamente lentos en comparación con todas estas otras opciones.fuente
Puede nombrar la selección y usar esto:
Debe seleccionar la opción que desee.
fuente
fuente
Respondiendo mi propia pregunta para documentación. Estoy seguro de que hay otras formas de lograr esto, pero esto funciona y este código se prueba.
fuente
Exactamente funcionará, pruebe estos métodos a continuación
fuente
Usando jquery-2.1.4 , encontré que la siguiente respuesta funcionaba para mí:
Si tiene un valor de cadena, intente lo siguiente:
Otros ejemplos no funcionaron para mí, por eso agrego esta respuesta.
Encontré la respuesta original en: https://forum.jquery.com/topic/how-to-dynamically-select-option-in-dropdown-menu
fuente
Para configurar el valor de selección con la activación seleccionada:
Para configurar la opción desde un ámbito:
Este código usa el selector para encontrar el objeto seleccionado con condición, luego cambia el atributo seleccionado por
attr()
.Además, recomiendo agregar un
change()
evento después de configurar el atributoselected
, al hacer esto, el código se cerrará para cambiar la selección por usuario.fuente
Lo uso cuando conozco el índice de la lista.
Esto permite que la lista cambie y active el evento de cambio. El ": nth (n)" cuenta desde el índice 0
fuente
Iré con: -
fuente
Prueba esto
solo usa select field id en lugar de #id (es decir, # select_name)
en lugar del valor de la opción, use su valor de opción de selección
fuente
Para Jquery elegido si envía el atributo a la función y necesita actualizar la opción de selección
fuente
fuente
Se
$('select').val('the_value');
ve la solución correcta y si tiene filas de tabla de datos, entonces:fuente
si no desea usar jQuery, puede usar el siguiente código:
fuente
Gracias por la pregunta Espero que este código funcione para ti.
fuente
o
fuente