尝试使用.find不区分大小写的jQuery过滤器。
例如,当search =“cat”(没有引号)时,它会找到“cat”而不是“Cat”或“CAT”。同样,“猫”发现“猫”而不是“猫”。
我怀疑这是非常基本的东西,但无法弄清楚,所以我在第一篇文章中与我们联系。
我无法控制列表项本身的内容,因此无法修改任何内容,
提前感谢您的帮助!
PS请不要嘘声为你们这些可能很年轻的东西。 ;)
$("#filter").live("keyup", function (ev) {
var $filter = $(this),
keyCode = ev.keyCode || ev.which,
search;
if (keyCode === 27) { //ESC
$filter.val("");
}
search = $(this).val();
$("#results").find("li").each(function () {
var $li = $(this);
if (search === "") {
$li.show();
} else {
if (_.include(service_names, search)) {
$li.toggle($li.hasClass("items-" + search));
} else {
if ($li.text().search(search) > 0) {
$li.show();
} else {
$li.hide();
}
}
}
});
});
答案 0 :(得分:6)
将两个字符串转换为小写,然后执行搜索:
search = $(this).val().toLowerCase();
$li.text().toLowerCase().search(search);
答案 1 :(得分:1)
您想要进行不区分大小写的搜索。尝试使用正则表达式search(/string/i)
$("#filter").live("keyup", function (ev) {
var $filter = $(this),
keyCode = ev.keyCode || ev.which,
search;
if (keyCode === 27) { //ESC
$filter.val("");
}
search = $(this).val() ;
// added
var search_regex = new RegExp(search, 'i');
$("#results").find("li").each(function () {
var $li = $(this);
if (search === "") {
$li.show();
} else {
if (_.include(service_names, search)) {
$li.toggle($li.hasClass("items-" + search));
} else {
// changed here
if (search_regex.test($li.text())) {
$li.show();
} else {
$li.hide();
}
}
}
});
});