2012-02-16 72 views
14

我想用jQuery實現列表的搜索功能。我使用下面的行來過濾匹配的元素jQuery選擇器:包含 - 使用正則表達式

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

這說明所有包含「過濾器」文本的元素。我只想顯示那些單詞以「過濾」文本開頭的元素。

我想爲此使用正則表達式。

有什麼辦法可以將正則表達式傳遞給:contains選擇器嗎?或者這可以通過其他方式實現嗎?

回答

15

您需要使用.filter(),但好消息是,你並不需要一個正則表達式:

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

+1是第一個和使用'this.textContent || this.innerText' :) – Sarfraz 2012-02-16 10:43:17

+1

+1:再次擊敗我! – nnnnnn 2012-02-16 10:45:32

+0

這個伎倆!謝謝:) – Nilesh 2012-02-16 14:13:07