【问题标题】:hide/show table row via multiselect通过多选隐藏/显示表格行
【发布时间】:2017-11-02 14:08:44
【问题描述】:

目前我正在使用 bootstrap-multiselect 插件过滤表。我很难让它正常工作。我想根据多选中的选定值显示/隐藏表格行。例如。如果 row 的值为 Activated,则应只显示具有激活值的行,而其他行将被隐藏。如果我选择了“已激活”和“已停用”,则将显示具有 已激活已停用 值的行。如果我选择 All Selected,则应显示所有行。在这里检查了我的代码:

$('#custom-select').multiselect({
       includeSelectAllOption: true,
       onChange: function(option, checked) {

       var selected = [];

       $('#custom-select option:selected').each(function() {
           selected.push($(this).val());
       });

       console.log(selected);

       $.each(selected, function(i, val) {   

          $('#custom-table tr > td:not(:contains('+val+'))').closest('tr').hide();
          $('#custom-table tr > td:contains('+val+')').closest('tr').show();

       //console.log(val);
       });

       }
   });

我目前在 jsfiddle 上的工作。

【问题讨论】:

标签: javascript jquery html twitter-bootstrap-3 bootstrap-multiselect


【解决方案1】:

您在每个循环内隐藏表格行tr。因此,上次循环运行时,它隐藏了它应该显示的行。在执行show之前将其从循环中取出并隐藏所有行。

$(document).ready(function() {

   $('#custom-select').multiselect({
       includeSelectAllOption: true,
       onChange: function(option, checked) {

           var selected = [];

           $('#custom-select option:selected').each(function() {
               selected.push($(this).val());
           });

           $('#custom-table tr').hide();  // <-----

           $.each(selected, function(i, val) {   
               $('#custom-table tr > td:contains('+val+')').closest('tr').show();
           });
       }
    });
});

jsFiddle

【讨论】:

  • 我从没想过这很容易。谢谢@Patel。
  • @myRM 这发生在我们最好的人身上。干杯! :)
  • demo 无法正常工作,请您检查并更新它。
猜你喜欢
  • 2018-07-21
  • 2016-12-13
  • 2013-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多