jQuery过滤器功能未显示完全匹配:(

时间:2010-11-30 07:17:36

标签: javascript jquery


我的问题是这样的,
我正在使用过滤器功能在树中显示匹配的元素(LI),它工作正常,但它显示从传递的字符串开始的所有li元素,例如
如果我通过“应用程序”过滤功能,那么它显示我所有li,哪个文本从“应用程序”开始

function callme(filterData){
$("ul.treeview").find("li").hide();
if(filterData.indexOf("|")!=-1){
    var filterData = filterData.split("|");
for(i=0;i<filterData.length;i++){
jQuery("ul.treeview").find("li").filter(function(index) { return jQuery.trim($(this).text()) == filterData.trim(); }).show(); }
}else{ jQuery("ul.treeview").find("li").filter(function(index) { return jQuery.trim($(this).text()) == filterData.trim(); }).show();
} }

here is my html...

<ul id="leftNavigation" class="treeview"> <li> <ul> <li > <a href="#">Application</a><font class="leftNavHitsFont"> - (3)</font> </li> </ul> <ul> <li > <a href="#">Application Notes</a><font class="leftNavHitsFont"> - (1)</font> </li> </ul> </li> </ul>

1 个答案:

答案 0 :(得分:1)

是的,这是包含其他内容的定义。

也许你的意思是完全匹配?

jQuery("ul.treeview").find("li").filter(function(index) {
    return jQuery.trim($(this).text()) == jQuery.trim(filterData);
}).show();

jsFiddle example