如何隐藏/显示表格div作用于键盘过滤器输入

时间:2016-10-10 07:10:45

标签: javascript jquery html jquery-filter

我列出了一些div,我希望能够添加一个允许用户开始输入的输入字段,并且可以按顺序过滤div

我正在尝试下面的代码,但它没有过滤。它也没有抛出任何错误,所以我不知道该做什么......

这是html标记:

<table class="table" id="tagstable">
   <tbody>
      <tr>
         <td><label data-tagid="1" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">hotel tag<span></span></label></td>
         <td><label data-tagid="2" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">yoga tag<span></span></label></td>
         <td><label data-tagid="3" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">jogging tag<span></span></label></td>
         <td><label data-tagid="4" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">exercise tag<span></span></label></td>
      </tr>
      <tr>
         <td><label data-tagid="5" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">aerobic tag<span></span></label></td>
         <td><label data-tagid="6" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">running tag<span></span></label></td>
         <td><label data-tagid="23" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">Body Building<span></span></label></td>
         <td><label data-tagid="24" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">BB<span></span></label></td>
      </tr>
      <tr>
         <td><label data-tagid="25" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">one<span></span></label></td>
         <td><label data-tagid="26" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">two<span></span></label></td>
         <td><label data-tagid="27" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">three<span></span></label></td>
         <td><label data-tagid="28" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">four<span></span></label></td>
      </tr>
      <tr>
         <td><label data-tagid="29" class="mt-checkbox mt-checkbox-outline"><input type="checkbox" class="chkclass">five<span></span></label></td>
      </tr>
   </tbody>
</table>

<input id="filter" type="text" class="form-control" placeholder="Type here...">
$(document).ready(function(){
    $('#filter').keyup(function(){
        var tr = $('#tagstable tbody tr');
        tr.hide();
        tr.filter(function(){
            return $(this).text();
        }).show();
    })
});

http://jsfiddle.net/cod7ceho/155/

1 个答案:

答案 0 :(得分:1)

尝试使用:contains选择器获取具有输入字段值

的标签

执行以下操作:

   $(document).ready(function()
{
        $('#filter').keyup(function()
        {
        var val = this.value;
                var tr = $('#tagstable tbody td');
                el = tr.find('label:contains('+val+')').closest('td')
                tr.not(el).fadeOut();
                el.fadeIn();
        })
});

演示:http://jsfiddle.net/e08o7uct/3/