2009-12-06 22 views
9

tôi thấy đoạn mã này:jQuery .search() cho bất kỳ chuỗi

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

và muốn biết nếu điều này có thể được mở rộng đến bất kỳ chuỗi?

tôi muốn đạt được những điều sau đây, nhưng nó doesnt làm việc:

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

Ngoài ra, bất cứ ai có một liên kết đến tài liệu jQuery cho chức năng này? Tôi thất bại với vẻ googling.

Trả lời

25

search() là một phương thức String.

Bạn đang thực hiện hàm attr trên mọi thành phần<li>. Bạn cần gọi số each và sử dụng tham chiếu this bên trong.

Ví dụ:

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

Tôi nghĩ rằng $ (this) .attr ('title') đã là một chuỗi. Chúng ta vẫn cần phải chuyển đổi nó thành chuỗi một lần nữa? –

2

Ah, đó sẽ là vì RegExp không phải là jQuery. :)

Hãy thử this page. jQuery.attr không trả về một chuỗi để chắc chắn sẽ gây ra trong lĩnh vực này. May mắn thay tôi tin rằng bạn chỉ có thể sử dụng .text() để trả về biểu diễn Chuỗi.

Cái gì như:

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

Hoặc,

if (/yes/i.test(str)) 
Các vấn đề liên quan