Tengo un control de selección, y en una variable de JavaScript tengo una cadena de texto.
Usando jQuery, quiero establecer que el elemento seleccionado del control select sea el elemento con la descripción de texto que tengo (en oposición al valor, que no tengo).
Sé que establecerlo por valor es bastante trivial. p.ej
$("#my-select").val(myVal);
Pero estoy un poco perplejo al hacerlo a través de la descripción del texto. Supongo que debe haber una forma de obtener el valor de la descripción del texto, pero mi cerebro está demasiado ocupado el viernes por la tarde para poder resolverlo.
javascript
jquery
DanSingerman
fuente
fuente
Respuestas:
Seleccionar por descripción para jQuery v1.6 +
jQuery versiones inferiores a 1.6 y mayores o iguales a 1.4
Tenga en cuenta que si bien este enfoque funcionará en versiones superiores a 1.6 pero inferiores a 1.9, ha quedado en desuso desde 1.6. No funcionará en jQuery 1.9+.
Versión anterior
val()
debe manejar ambos casos.fuente
value
si se ha especificado el atributo, y solo seleccionar por texto sivalue
falta el atributo. Entonces, en este ejemplo$('select').val('Two')
, seleccionará la segunda opción en 1.3.x, pero no hará nada en 1.4.x.No he probado esto, pero esto podría funcionar para ti.
fuente
Pruebe esto ... para seleccionar la opción con texto myText
fuente
$("#my-Select option[text=" + myText +"]").get(0).selected = true;
estilo clásico de vez en cuando: (....prop
lugar de.attr
; La causa del cambio es que en 1.9 jQuery deshabilitó los viejos hacks que le permiten.attr
cambiar algunas propiedades DOM así como también los atributos HTML. (Googlejavascript dom properties vs attributes
si no conoce la distinción.).prop('selected', true)
lugar de.attr('selected', 'selected')
para jQuery 1.9+ compatibilidad.Lo hago de esta manera (jQuery 1.9.1)
Nota: no olvide el cambio (), tuve que buscar mucho tiempo por eso :)
fuente
devolverá el valor de la primera opción que contiene su descripción de texto. Probado esto y funciona.
fuente
Para evitar todas las complicaciones de la versión jQuery, honestamente recomiendo usar una de estas funciones javascript realmente simples ...
fuente
Sé que esta es una publicación antigua, pero no pude seleccionarla por texto usando jQuery 1.10.3 y las soluciones anteriores. Terminé usando el siguiente código (variación de la solución de spoulson):
Espero que ayude a alguien.
fuente
Esta línea funcionó:
fuente
La declaración if no coincide exactamente con "dos" y "dos tres" no coincidirá
fuente
La forma más fácil con 1.7+ es:
1.9+
Probado y funciona.
fuente
.prop
para cambiar las propiedades DOM, no.attr
(que es para los atributos HTML / DOM). Ver stackoverflow.com/q/5874652/1709587Aquí es de manera muy simple. por favor úsalo
fuente
eche un vistazo al complemento jquery selectedbox
Seleccione las opciones por valor, utilizando una cadena como parámetro
$("#myselect2").selectOptions("Value 1");
o una expresión regular$("#myselect2").selectOptions(/^val/i);
.También puede borrar las opciones ya seleccionadas:
$("#myselect2").selectOptions("Value 2", true);
fuente
Solo en una nota al margen. Mi valor seleccionado no se estaba configurando. Y tuve que buscar por toda la red. En realidad, tuve que seleccionar un valor después de una llamada desde un servicio web, porque estaba obteniendo datos de él.
Así que la actualización del selector fue lo único que me faltaba.
fuente
Descubrí que al usarlo
attr
terminaría con múltiples opciones seleccionadas cuando no quisiera: la solución es usarprop
:$("#myDropDown option:text=" + myText +"").prop("selected", "selected");
fuente
Tuve un problema con los ejemplos anteriores, y el problema fue causado por el hecho de que mis valores de cuadro de selección se rellenan previamente con cadenas de longitud fija de 6 caracteres, pero el parámetro que se pasó no tenía una longitud fija.
Tengo una función rpad que rellenará a la derecha una cadena, a la longitud especificada y con el carácter especificado. Entonces, después de rellenar el parámetro, funciona.
fuente
fuente
Esta respuesta aceptada no parece correcta, mientras que .val ('newValue') es correcto para la función, intentar recuperar una selección por su nombre no funciona para mí, tuve que usar el id y el nombre de clase para obtener mi elemento
fuente
Heres una opción fácil. Simplemente configure su opción de lista y luego configure su texto como valor seleccionado:
fuente
Obtenga los hijos del cuadro de selección; bucle a través de ellos; cuando haya encontrado el que desea, configúrelo como la opción seleccionada; devuelve falso para detener el bucle.
fuente