2012-02-16 48 views
14

Estoy tratando de implementar la funcionalidad de búsqueda para una lista usando jQuery. Estoy utilizando la siguiente línea para filtrar los elementos coincidentesjQuery selector: contiene - Usar expresiones regulares

$(list).find("a:contains(" + filter + ")").parent().show(); 

Esto muestra todos los elementos que contienen el texto "filtro". Quiero mostrar solo aquellos elementos en los que las palabras comienzan con el texto "filtro".

Estoy pensando en usar la expresión regular para esto.

¿Hay alguna manera de pasar la expresión regular al selector :contains? ¿O se puede lograr de otra manera?

Respuesta

15

Es necesario utilizar .filter(), pero la buena noticia es que no es necesario una expresión regular:

$(list).find("a").filter(function() { 
    return (this.textContent || this.innerText || '').indexOf(filter) === 0; 
}).parent().show(); 
+1

+1 por ser el primer y el uso de 'this.textContent || this.innerText' :) – Sarfraz

+1

+1: ¡golpéame otra vez! – nnnnnn

+0

Esto hizo el truco! Gracias :) – Nilesh

Cuestiones relacionadas