2011-09-08 9 views
19

tengo el selector folowingselector de jQuery, contiene al igual

var likeComperssionOption = $('select[id*=ComparisionType]').eq(0) 
              .find("option:contains('LIKE')"); 

Esto comprueba una opción que contiene la palabra 'como' derecho?

¿Cómo encuentro una opción que es exactamente con la palabra 'me gusta'?

algo como esto:

 var likeComperssionOption = $('select[id*=ComparisionType]').eq(0) 
              .find("option:equals('LIKE')"); 

Respuesta

23

Sólo tienes que seleccionar todas las opciones de la select y filtrarlos por text() valor:

var likeComperssionOption = $('select[id*=ComparisionType]:first option').filter(function() { return $(this).text() == "LIKE" }); 
+0

No funcionó. El "me gusta" está en el texto. Cuando uso la alerta para mostrar el valor de de alerta (comoComperssionOption.val()); Me vuelvo indefinido Pero cuando utilicé los "conatins" (como en la pregunta) La misma alerta muestra "3" –

+0

no se puede ver ningún problema: http://jsfiddle.net/dSKjy/ –

+0

Funcionó, gracias. Tenía "Me gusta" con espacios por eso no funcionó para mí. ¿Hay una función de recorte? –

2

Si desea seleccionar según el atributo value de las opciones, es necesario utilizar el attribute equals selector para seleccionar elementos con un valor específico para su value atributo:

var likeComperssionOption = $('select[id*=ComparisionType]').eq(0) 
          .find("option[value='LIKE']") 

De lo contrario, para seleccionar en función del texto de visualización de las opciones, utilice:

var likeComperssionOption = $('select[id*=ComparisionType]').eq(0) 
          .find("option").filter(function() { 
           return $(this).text() == 'LIKE'; 
          }); 

Actualización: Es posible que tenga algunos problemas con el selector inicial, se ve muy extraño. Probablemente debería cambiar

$('select[id*=ComparisionType]').eq(0) 

a algo tan simple como

$('#ComparisionType') 

El concepto de esta respuesta funciona bien, puede see it in action here.

+0

puedo tener value = "1" y el texto = "similares": ' ' –

+0

No funcionó. El "me gusta" está en el texto. Cuando uso la alerta para mostrar el valor de de alerta (comoComperssionOption.val()); Me vuelvo indefinido Pero cuando usé los "conatins" (como en la pregunta) La misma alerta muestra "3" –

+0

@Aharon: Funciona para mí. Mira mi actualización y mira el enlace. – Jon