2009-12-06 13 views
9

ho visto questo frammento di codice:jQuery .search() per qualsiasi stringa

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

e volevo sapere se questo può essere esteso a qualsiasi stringa?

che voglio realizzare quanto segue, ma non dovesse funzionare:

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

Inoltre, chiunque hanno un collegamento alla documentazione jQuery per questa funzione? Apparentemente non riesco a cercare su Google.

risposta

25

search() è un metodo String.

si sta eseguendo la funzione attr su ogni<li> elemento. È necessario richiamare each e utilizzare il riferimento this all'interno.

Esempio:

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

penso $ (this) .attr ('title') è già una stringa. Dobbiamo ancora convertirlo nuovamente in stringa? –

2

Ah, che sarebbe causa RegExp non è jQuery. :)

Prova this page. jQuery.attr non restituisce una stringa in modo che possa causare in tal senso. Fortunatamente, credo che si possa semplicemente usare .text() per restituire la rappresentazione String.

Qualcosa di simile:

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

Oppure,

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