需要帮助使jQuery .find不区分大小写

试图使这个jQueryfilter使用.find不区分大小写。

例如,当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(); } } } }); }); 

您想要进行不区分大小写的搜索。 尝试使用正则表达式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(); } } } }); }); 

将两个字符串转换为小写,然后执行搜索:

 search = $(this).val().toLowerCase(); $li.text().toLowerCase().search(search);