2012-02-16 76 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