J.Z*_*Zil 1 javascript search jquery
我在Jquery脚本上有一些帮助,它创建了一个可搜索,可切换的常见问题解答.代码可以在这里看到:
麻烦的是,如果有一个大写字母"H"的单词"How"并且我搜索"h",它就找不到它.如何使此脚本不区分大小写?
或者,您可以使用正则表达式显着减少代码量.jsFiddle演示
$('#search').keyup(function(e) {
// create the regular expression
var regEx = new RegExp($.map($(this).val().trim().split(' '), function(v) {
return '(?=.*?' + v + ')';
}).join(''), 'i');
// select all list items, hide and filter by the regex then show
$('#result li').hide().filter(function() {
return regEx.exec($(this).text());
}).show();
});?
Run Code Online (Sandbox Code Playgroud)
根据您当前用于确定相对元素的算法,您可以使用jQuery filter方法根据keywords数组过滤结果.这是一个粗略的想法:
// select the keywords as an array of lower case strings
var keywords = $(this).val().trim().toLowerCase().split(' ');
// select all list items, hide and filter then show
$('#result li').hide().filter(function() {
// get the lower case text for the list element
var text = $(this).text().toLowerCase();
// determine if any keyword matches, return true on first success
for (var i = 0; i < keywords.length; i++) {
if (text.indexOf(keywords[i]) >= 0) {
return true;
}
}
}).show();
Run Code Online (Sandbox Code Playgroud)