javascript - 使用 jquery 在复选框选择上显示/隐藏列

标签 javascript jquery html checkbox

我正在 .NET MVC 项目中处理列过滤器。我的要求是,在下拉控件中,所有表标题列名称都将与复选框绑定(bind)。默认情况下,所有选项都被选中。当我从下拉列表中取消选择它反射(reflect)到表数据的任何选项时,该列将不会显示。

我写了一些代码但无法实现复选框功能。请帮我。如果 jquery 插件可用,那对我也有帮助。

JsFiddle DEMO

代码

$("#myOptions").change(function() {
      selectedVal = $.trim($("#myOptions option:selected").text());
    var i = $("#myTable thead .headercell td:contains(" + selectedVal + ")").index() + 1;
    $('td:nth-child(' + i+ ')').toggle();
    });

最佳答案

我想你想让多选更容易:使用select2:

$("#myOptions").select2({
  tags: true
}).change(function() {
  var test = $("#myOptions").val();
  $("td").show();
  for (var j = 0, len = test.length; j < len; j++) {
    $('td:nth-child(' + test[j] + ')').hide();
  }

});
body{font-family:calibri;}
  table { padding: 0; border-collapse: collapse; }
  table thead td { background-color: #f2f2f2; font-weight:bold;}
  table td { border: 1px solid #d7d7d7; padding: 5px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>

<select id="myOptions" multiple="multiple" style="width:100%">
  <option value="1">Name</option>
  <option value="2">Address</option>
  <option value="3">City</option>
  <option value="4">Country</option>
</select>  
<table id="myTable" cellspacing="0" cellpadding="0">
  <thead>
    <tr class="headercell">
      <td>Name</td>
      <td>Address</td>
      <td>City</td>
      <td>Country</td>
    </tr>
  </thead>
  <tbody>
    <tr class="datacell">
      <td>Anand</td>
      <td>2404/71</td>
      <td>Mohali</td>
      <td>India</td>
    </tr>
    <tr class="datacell">
      <td>Nilesh</td>
      <td>236/10</td>
      <td>Chandigarh</td>
      <td>India</td>
    </tr>
    <tr class="datacell">
      <td>Rahul</td>
      <td>A 71 Radhepuri</td>
      <td>New Delhi</td>
      <td>India</td>
    </tr>
    <tr>
      <td>Pratius</td>
      <td>Trishna Apartment-740</td>
      <td>Hydrabad</td>
      <td>India</td>
    </tr>
  </tbody>
  </table>

关于javascript - 使用 jquery 在复选框选择上显示/隐藏列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43178275/

相关文章:

javascript - 使用 javascript 自动求和和减去

jQuery .fadeIn 不工作

javascript - 如何从 $(this) jQuery 对象中获取 this DOM 对象?

html - 从导航栏 UL css 中删除填充

html - 在 CSS 过渡结束时跳转

javascript - 如何更改列的数据源

javascript - 调用 .length 时无法读取 null 的属性 'length'

javascript - 如何使用javascript或jquery检查元素的父元素本身是否是最后一个子元素

javascript - 从 div 中的 php 打印 json

html - React - svg 内的 html 标签