2009-12-06 16 views
9

vi este fragmento de código:jQuery .search() para cualquier cadena

$("ul li").text().search(new RegExp("sometext", "i")); 

y quería saber si esto se puede extender a cualquier cadena?

que quiero lograr lo siguiente, pero dosen't trabajo:

$("li").attr("title").search(new RegExp("sometext", "i")); 

Además, cualquier persona tiene un enlace a la documentación de jQuery para esta función? Al parecer no busco en Google.

Respuesta

25

search() es un método de cadena.

Está ejecutando la función attr en cada elemento <li>. Debe invocar each y utilizar la referencia this dentro.

Ejemplo:

$('li').each(function() { 
    var isFound = $(this).attr('title').search(/string/i); 
    //do something based on isFound... 
}); 
+1

creo $ (this) .attr ('titulo') ya es una cadena. ¿Todavía tenemos que convertirlo a cadena de nuevo? –

2

Ah, que sería porque RegExp no es jQuery. :)

Probar this page. jQuery.attr no devuelve una cadena por lo que sin duda causaría en este sentido. Afortunadamente, creo que puede usar .text() para devolver la representación de Cadena.

Algo así como:

$("li").val("title").search(/sometext/i)); 
6
if (str.toLowerCase().indexOf("yes") >= 0) 

O

if (/yes/i.test(str))