2011-07-06 16 views
5

¿Existe una función/selector incorporado en jQuery para filtrar las entradas por valor?función/selector para filtrar entradas por valor

puedo crear un selector personalizado:

$.extend($.expr[":"], { 
    val: function(elem, index, match) { 
     return $(elem).val() == match[3]; 
    } 
}); 

y utilizar de esta manera: $("input:val('Some text')").

Me preguntaba si algo como esto ya existe o tal vez hay una mejor manera.

Respuesta

2

Usted puede hacer esto:

$('input[value=someval]') 

también se puede encadenar se

$('input[type=radio][value=someval]') 

mirada here:

+2

Esto devolverá el valor por defecto (atributo), pero necesito el valor actual del control. – Corneliu

+0

El primero seleccionará todas las entradas con el valor = 'someval'. Este es un selector, devuelve una colección de objetos jquery. Esto "filtra las entradas por valor" ya que solo devuelve entradas con un cierto valor. –

+8

value = 'someval' filtrará los controles por el valor inicial definido por el atributo "valor". , si el usuario cambia el texto en el cuadro de entrada, ex a 'newval' la entrada [value = someval] seguirá seleccionando el nodo (en menos en navegadores compatibles con estándares, ex FF), porque el valor predeterminado sigue siendo 'someval'. IE filtrará contra el valor actual que no está de acuerdo con el estándar HTML. – Corneliu

2
$.extend($.expr[":"], { 
    val: function(elem, index, match) { 
     return $.trim($(elem).val()) == $.trim(match[3]); 
    } 
}); 
4

No parece que haya una solución integrada . Sin embargo, para un selector de una sola vez, .filter() es una opción:

$('input').filter(function() { return $(this).val() === 'Some text'; }); 
Cuestiones relacionadas