Javascript区分大小写过滤器

Javascript区分大小写过滤器,javascript,jquery,Javascript,Jquery,我正在使用下面的脚本筛选表格中的结果。唯一的问题是它区分大小写。我如何使它不区分大小写 <script> $(document).ready(function() { $("#searchInput").keyup(function(){ //hide all the rows $("#fbody").find("tr").hide(); //split the current value of searchInput

我正在使用下面的脚本筛选表格中的结果。唯一的问题是它区分大小写。我如何使它不区分大小写

<script>
 $(document).ready(function() {

      $("#searchInput").keyup(function(){
    //hide all the rows
          $("#fbody").find("tr").hide();

    //split the current value of searchInput
          var data = this.value.split(" ");
    //create a jquery object of the rows
          var jo = $("#fbody").find("tr");

    //Recusively filter the jquery object to get results.
          $.each(data, function(i, v){
              jo = jo.filter("*:contains('"+v+"')");
          });
        //show the rows that match.
          jo.show();
     //Removes the placeholder text  

      }).focus(function(){
          this.value="";
          $(this).css({"color":"black"});
          $(this).unbind('focus');
      }).css({"color":"#C0C0C0"});

  });

</script>

$(文档).ready(函数(){
$(“#searchInput”).keyup(函数(){
//隐藏所有行
$(“#fbody”).find(“tr”).hide();
//拆分searchInput的当前值
var数据=此.value.split(“”);
//创建行的jquery对象
var jo=$(“#fbody”).find(“tr”);
//循环过滤jquery对象以获得结果。
$。每个(数据、功能(i、v){
jo=jo.filter(“*:包含(“+v+”)”);
});
//显示匹配的行。
jo.show();
//删除占位符文本
}).focus(函数(){
此。值=”;
$(this.css({“color”:“black”});
$(this.unbind('focus');
}).css({“color”:“#c0”});
});

我可能会更改过滤器:

      $.each(data, function(i, v) {
          jo = jo.filter(function() {
            return $(this).text().toLowerCase().indexOf(v.toLowerCase()) > -1;
          });
      });
我会帮你的

$.expr[":"].containsNoCase = $.expr.createPseudo(function(arg) {
    return function( elem ) {
        return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
    };
});

可以使用
filter()
执行类似操作:


使其不区分大小写的一个好方法可能是将
toLowerCase()
应用于两者,因此
var foo='HelLO WoRLd!'
var boo='HELLO world!'
so
foo.toLowerCase()==boo.toLowerCase()
$.expr[":"].containsNoCase = $.expr.createPseudo(function(arg) {
    return function( elem ) {
        return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
    };
});
 $.each(data, function (i, v) {
     v = v.toLowerCase();    
     jo.filter(function () {
         var txt = $(this).text().toLowerCase();
         return txt.indexOf(v) > -1;
     }).show();    
 })