Necesito verificar si a <select>
tiene una opción cuyo texto es igual a un valor específico.
Por ejemplo, si hay un <option value="123">abc</option>
, estaría buscando "abc".
¿Hay un selector para hacer esto?
Estoy buscando algo similar $('#select option[value="123"]');
pero para el texto.
has
respuesta en SLaks es útil, pero el punto en la respuesta de Floyds también es bueno ... No sé qué aceptar.Respuestas:
Esto podría ayudar:
Violín de demostración
Esto le daría la opción con texto
B
y no las que tienen texto que contieneB
. Espero que esto ayudePara versiones recientes de jQuery, lo anterior no funciona. Como comenta Quandary a continuación, esto es lo que funciona para jQuery 1.9.1:
Violín actualizado
fuente
Puede usar el
:contains()
selector para seleccionar elementos que contienen texto específico.Por ejemplo:
Para verificar si un
<select>
elemento dado tiene esa opción, use el.has()
método :Para encontrar todos los
<select>
correos electrónicos que contienen dicha opción, use el:has()
selector :fuente
:contains
no es definitivo ahora, ¿verdad?123abcdef
?Ninguna de las sugerencias anteriores funcionó para mí en jQuery 1.7.2 porque estoy tratando de establecer el índice seleccionado de la lista en función del valor de un cuadro de texto, y algunos valores de texto están contenidos en múltiples opciones. Terminé usando lo siguiente:
fuente
contains
completo puede acelerar las cosas.$(this).parent().val($(this).val());
Probablemente podría hacer ambas cosas, pero para mí, configurar solo el padreval()
hizo el truco.Me enfrenté al mismo problema a continuación: el código de trabajo:
Demostración: http://jsfiddle.net/YRBrp/83/
fuente
Esto funcionó para mí:
$("#test").find("option:contains('abc')");
fuente
$("#testselect").find("option:contains('option-text')").attr('value');
de esa manera puede usar un evento como.click()
cambiar una configuración.Este es el mejor método para seleccionar texto en la lista desplegable.
fuente
this is your selected text plus more
.Probé algunas de estas cosas hasta que conseguí una para trabajar tanto en Firefox como en IE. Esto es lo que se me ocurrió.
Otra forma de escribirlo de una manera más legible:
Pseudocódigo:
fuente
"#my-Select" + " option"
? ¿Por qué no solo"#my-Select option"
?Usar siguiente
fuente
Esto funcionará en jQuery 1.6 (tenga en cuenta dos puntos antes del paréntesis de apertura), pero falla en las versiones más recientes (1.10 en ese momento).
fuente
$("#mySelect option").filter(function() { return this.text == "abc"; });
el trabajo con la voluntad últimas versiones de jQuery .. O probablemente alguna otra manera, que prefiere utilizar ..Para jquery versión 1.10.2 a continuación funcionó para mí
fuente
Este trabajo para mi
fuente
Esto funciona para mi:
La
result
variable devolverá el índice del valor de texto coincidente. Ahora lo configuraré usando su índice:fuente
O iteras por las opciones, o pones el mismo texto dentro de otro atributo de la opción y seleccionas con eso.
fuente
Esto también funcionará.
$ ('# test'). find ("opción de selección: contiene ('B')"). filter (": selected");
fuente
ABC
.Como se describe en esta respuesta , puede crear fácilmente su propio selector para hasText. Esto le permite encontrar la opción con
$('#test').find('option:hastText("B")').val();
Aquí está el método hasText que agregué:
fuente
Esto funciona para mi
Gracias por todas las publicaciones.
fuente