我有一个包含人员和数据的长表的Wordpress网站,我需要添加一个搜索过滤器,该过滤器仅显示与输入的单词匹配的人。这是我正在使用的代码:
$(document).ready(function() {
$('input[name=searchFilterInput]').keyup(function() {
var searchFilterVal = $('input[name=searchFilterInput]').val();
searchFilterVal = searchFilterVal.replace(/ /g, '-');
searchFilterVal = searchFilterVal.toLowerCase();
if(searchFilterVal == '') {
$('tr.hide').fadeIn('slow').removeClass('hide');
} else {
$('tr.fellows').each(function() {
if(!$(this).hasClass(searchFilterVal)) {
$(this).fadeOut('normal').addClass('hide');
} else {
$(this).fadeIn('slow').removeClass('hide');
}
});
}
});
});
只要输入与类完全匹配,这就很有用。我需要if(!$(this).hasClass(searchFilterVal)) {
基本上说“If(this).hasClass(如果输入匹配类的任何部分)”
这有意义吗?这是页面: http://cambridgefellows.com/directory-of-fellows/?searchFilterInput=Media
是第二个搜索字段 - 下拉菜单右侧的搜索字段。
如果没有明确询问这个问题,我很抱歉 - 如果我能说得更清楚,请告诉我。谢谢!
答案 0 :(得分:1)
试试这个..我已经开始了,它正在运作
$(document).ready(function() {
$('input[name=searchFilterInput]').keyup(function() {
var searchFilterVal = $('input[name=searchFilterInput]').val();
searchFilterVal = searchFilterVal.replace(/ /g, '-');
searchFilterVal = searchFilterVal.toLowerCase();
if(searchFilterVal == '') {
$('tr.hide').fadeIn('slow').removeClass('hide');
} else {
$('tr.fellows').each(function() {
var pattern = $(this).attr('class'); // the pattern to be matched
var match = pattern.match(searchFilterVal);//If pattern matches it returns the match
if(!match) {
$(this).fadeOut('normal').addClass('hide');
} else {
$(this).fadeIn('slow').removeClass('hide');
}
});
}
});
});