2012-02-16 37 views
14

Tôi đang cố triển khai chức năng tìm kiếm cho danh sách bằng jQuery. Tôi đang sử dụng dòng sau để lọc các yếu tố phù hợpBộ chọn jQuery: chứa - Sử dụng cụm từ thông dụng

$(list).find("a:contains(" + filter + ")").parent().show(); 

Điều này hiển thị tất cả các thành phần chứa văn bản "lọc". Tôi muốn chỉ hiển thị những yếu tố mà từ đó bắt đầu bằng văn bản "lọc".

Tôi đang nghĩ đến việc sử dụng cụm từ thông dụng cho điều này.

Có cách nào để chuyển cụm từ thông dụng sang bộ chọn :contains không? Hoặc điều này có thể đạt được bằng bất kỳ cách nào khác không?

Trả lời

15

Bạn cần phải sử dụng .filter(), nhưng tin tốt là bạn không cần một biểu thức chính quy:

$(list).find("a").filter(function() { 
    return (this.textContent || this.innerText || '').indexOf(filter) === 0; 
}).parent().show(); 
+1

+1 cho là người đầu tiên và sử dụng của 'this.textContent || this.innerText' :) – Sarfraz

+1

+1: đánh bại tôi lần nữa! – nnnnnn

+0

Điều này đã làm các trick !! Cảm ơn :) – Nilesh

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