如何根据两个值搜索表tr

时间:2016-10-18 14:05:01

标签: jquery

我有一张桌子和一个搜索输入。

当用户在输入中键入内容时,我需要显示与搜索输入内输入的值相关的相关信息

用户可以通过公司名称首席执行官名称

进行搜索
 // if user enters TCS or Chandran ,i need to show TCS table row
    $("#search").keyup(function(){
        _this = this;
        $.each($(".portlet"), function() {
            if($(this).data('compname').toLowerCase().indexOf($(_this).val().toLowerCase()) === -1)
               $(this).hide();
            else
               $(this).show();                
        });
    }); 

http://jsfiddle.net/cod7ceho/173/

你能告诉我如何解决这个问题

4 个答案:

答案 0 :(得分:1)

又增加了一项条件:

if((($(this).data('compname').toLowerCase().indexOf($(_this).val().toLowerCase())) === 0)||($(this).data('ceo').toLowerCase().indexOf($(_this).val().toLowerCase())===0))

看看这个小提琴: http://jsfiddle.net/cod7ceho/177/

答案 1 :(得分:0)

如果您在compnameceo中找不到搜索字符串,则只想隐藏“行”,因此您应该添加

&& ($(this).data('ceo').toLowerCase().indexOf($(_this).val().toLowerCase()) === -1)if

像这样:

if(($(this).data('compname').toLowerCase().indexOf($(_this).val().toLowerCase()) === -1) && ($(this).data('ceo').toLowerCase().indexOf($(_this).val().toLowerCase()) === -1))

这有点难以阅读,所以我也会重新格式化为:

if(
    ($(this).data('compname').toLowerCase().indexOf($(_this).val().toLowerCase()) === -1)
    && ($(this).data('ceo').toLowerCase().indexOf($(_this).val().toLowerCase()) === -1)
){
    $(this).hide();
} else ...

答案 2 :(得分:0)

您可以使用JQuery filter(),例如:

$("#search").keyup(function() {
  _this = this;
  inputVal = $(this).val().toLowerCase();
  console.log(inputVal);
  if (inputVal === "") {
    $('.portlet').fadeIn();
  } else {
    $('.portlet').filter(function() {
      return $(this).data('compname').toLowerCase().indexOf($(_this).val().toLowerCase()) !== -1;
    }).fadeIn();
    $('.portlet').filter(function() {
      return $(this).data('compname').toLowerCase().indexOf($(_this).val().toLowerCase()) == -1;
    }).fadeOut();
  }
});

小提琴:http://jsfiddle.net/cod7ceho/182/

答案 3 :(得分:0)

我走了以下路:

$("#search").keyup(function(){
   _found = false;
   _this = this;
    $.each($(".portlet"), function() {
        if($(this).data('compname').toLowerCase().indexOf($(_this).val().toLowerCase()) == -1) {
           $(this).hide();
           _found = false;
       } else {
           $(this).show();
           _found = true;
       }

       if($(this).data('ceo').toLowerCase().indexOf($(_this).val().toLowerCase()) == -1 && _found == false)
           $(this).hide();
        else
           $(this).show();
    });
});

我添加了变量_found作为州持有人和附加条件。它不是最好的方式,它只是工作。