JSFiddle - React, Tailwind, and code Playground

by qunzorez

HTML

<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/searchpanes/1.2.0/css/searchPanes.dataTables.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/select/1.3.1/css/select.dataTables.min.css">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/searchpanes/1.2.0/js/dataTables.searchPanes.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/select/1.3.1/js/dataTables.select.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/scroller/2.0.3/js/dataTables.scroller.min.js"></script>

<div class="content-container">
  <h2 class="head-of-editor">Filtering settings:</h2>
  <div class="checkBoxes"></div>
  <br />
  <a class="button button-clear" id="createFilter" href="#">Create filter</a><br><br>
</div>

<table class="custom-style" id="test1">
  <thead class="table-head">
    <tr>
    <th class="checkbox-mark">
                                <input type="checkbox" class="custom-checkbox" id="checkAll"/>
                            </th>
      <th>Station code</th>
      <th>Station name</th>
      <th>Station type</th>
      <th>Description</th>
      <th>Belongs to production resource(s)</th>
      <th>Main production resource</th>
      <th></th>
    </tr>
  </thead>
  <tbody class="table-body">
    <tr>
    <td>
                                    <input type="checkbox" class="custom-checkbox checkbox-mark"/>
                                </td>
      <td id="code_1" class="col-2">
        <span class="float-left">
          <em class="fa fa-eye pointer fa-visible"...

JavaScript

addSpliting('');

function addSpliting(val) {
  
  if(val != '') {
      
      $("#test1").DataTable({
        destroy: true,
        searchPanes: {
          layout: 'columns-4',
        },
        columnDefs: [{
          searchPanes: {
            show: true,
          },
          targets: '_all'
        }],
        dom: 'Pfrtip'
      });
      $('.dtsp-searchPanes').children().each(function(i, obj){
				if(!val.includes(i)) $(this).hide();
        else $(this).show();
});
   }
   else {
      $("#test1").DataTable({
         destroy: true
      });
   }
  
}

function setFilters() {
  
  $("table thead tr th").each(function(index) {
    
    var boxes = `<label>
                <input type="checkbox" class="checkbox" id="${index}"/>
                ${$(this).text()}
                </label>`
    if ($(this).text() != "") $(".checkBoxes").append(boxes);
  });
}

setFilters();

$("#createFilter").on("click", function() {
   var columFilters = [];
  
   $('.checkbox:checked').each(function () {
      columFilters.push(parseInt($(this).attr('id')));
   });
  
   addSpliting(columFilters);
});

$('#checkAll').click(function () {
    $(':checkbox.checkbox-mark').prop('checked', this.checked);
});