我打算为表格制作一个简单的排序搜索框。
我有以下代码:
<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');
});