2012-04-30 31 views
5

Tôi có một số văn bản từ đường dẫn mà tôi đang sử dụng để mở các mục menu trên một trang. Ví dụ: giả sử số bctext = 'pasta'.jquery tìm chuỗi chính xác không nhiều hơn hoặc ít hơn

Tôi muốn nhắm mục tiêu từ "mì ống", nhưng không nói "yadda yadda yadda pasta". Chỉ một ví dụ của từ "mì ống" phải khớp, hoặc nếu bctext là một cụm từ, thì nó sẽ chỉ tìm thấy cụm từ chính xác.

Đây là những gì tôi có cho đến nay:

$('ul#accordion a:contains(' + bctext + ')') 

Nhưng điều này thấy "yadda yadda pasta", tất nhiên.

tôi nhận được bctext như sau:

var bctext = $('#CategoryBreadcrumb ul li:last-child').prev().children().text(); 

Sau đó, tôi chỉnh sửa menu như sau:

$('ul#accordion a:contains(' + bctext + ')').parent() 
              .addClass('special') 
              .children('ul') 
              .css('display','block'); 

phải là những gì tôi sẽ cho tốt?

Trả lời

14
$('ul#accordion a').filter(function() { 
    return $(this).text() == bctext; 
}).parent().addClass('special').children('ul').css('display','block'); 

:contains() không phải là một chọn bản địa anyway vì vậy sử dụng .filter() với một callback tùy chỉnh sẽ không có bất kỳ hạn chế hiệu suất.

+0

vì vậy xin lỗi jquery của tôi không phải là tuyệt vời ... tôi sẽ thêm nhiều mã của tôi ở trên bởi vì tôi không chắc chắn làm thế nào để làm việc này vào những gì tôi đã làm. – liz

+0

ở trên tôi đã thêm mã đầy đủ là gì. vì vậy bây giờ chỉ cần được rõ ràng. (và có lẽ tôi có tất cả điều này sai ...) tôi sử dụng chức năng lọc để tìm các văn bản trong một thẻ và cung cấp cho nó một biến và sau đó so sánh với bctext tôi tìm thấy trong breadcrumb? – liz

+0

Tôi đã cập nhật câu trả lời của mình. – ThiefMaster

Các vấn đề liên quan