10

I saw this code snippet:

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

and wanted to know if this can be extended to any string?

I want to accomplish the following, but it dosen't work:

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

Also, anyone have a link to the jQuery documentation for this function? I fail at googling apparently.

Jacob Relkin
  • 161,348
  • 33
  • 346
  • 320
Omar
  • 39,496
  • 45
  • 145
  • 213

3 Answers3

27

search() is a String method.

You are executing the attr function on every <li> element. You need to invoke each and use the this reference within.

Example:

$('li').each(function() {
    var isFound = $(this).attr('title').search(/string/i);
    //do something based on isFound...
});
Jacob Relkin
  • 161,348
  • 33
  • 346
  • 320
8
if (str.toLowerCase().indexOf("yes") >= 0)

Or,

if (/yes/i.test(str))
sachleen
  • 30,730
  • 8
  • 78
  • 73
Biswajit Roy
  • 81
  • 1
  • 1
2

Ah, that would be because RegExp is not jQuery. :)

Try this page. jQuery.attr doesn't return a String so that would certainly cause in this regard. Fortunately I believe you can just use .text() to return the String representation.

Something like:

$("li").val("title").search(/sometext/i));
Chuck Vose
  • 4,560
  • 24
  • 31