我打算为表格制作一个简单的排序搜索框。

我有以下代码:

<input name="search" />
<table id="content">
    <tr class="item"> (...) </tr>
    <tr class="item"> (...) </tr>
</table>

$(document).ready(function(){
    $('input[name="search"]').keydown(function(){
    $('tr.item:contains("' + $(this).val()+ '")').prependTo('#content');
});


这可以正常工作,但是.contains()区分大小写。

如何使它变得不敏感?

我在网上发现了这个:

http://bugs.jquery.com/ticket/278#comment:4

http://ericphan.info/blog/2009/3/4/jquery-13-case-insensitive-contains.html

但是当我添加以下代码时:

$.extend($.expr[":"], {
  "containsIgnoreCase": function(elem, i, match, array) {
     return (elem.textContent || elem.innerText || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
}});


似乎没有任何变化,我的搜索框仍然区分大小写...

最佳答案

扩展$以添加containsIgnoreCase后,应在代码中使用containsIgnoreCase。尝试这个。

$(document).ready(function(){
    $('input[name="search"]').keydown(function(){
    $('tr.item:containsIgnoreCase("' + $(this).val()+ '")').prependTo('#content');
});

09-30 16:03
查看更多