title: Datatables with column filter dropdowns and multiple checkbox selection
body: <p>I found this excellent code from joao vitor retamero -  fiddle: <a href="https://jsfiddle.net/jvretamero/bv6g0r64/" rel="noreferrer">https://jsfiddle.net/jvretamero/bv6g0r64/</a>  that shows how to make multiple selections in jquery datatable column filters. But I need to transform the filter containers into dropdowns, with each item in the container being a checkbox.  Yes, there are many references to this, as I've found out during several hours of researching.  But I'm yet to find any examples, or any clear explanations of how to do this, despite many saying it's possible with jquery plugin.  Can anyone point to any examples?  I've no clue how to even start.  Many thanks.</p>
  
  <pre><code>&lt;script src="https://code.jquery.com/jquery-1.12.4.js"&gt;&lt;/script&gt;
  &lt;script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"&gt;&lt;/script&gt;
  &lt;script src="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css"&gt;&lt;/script&gt;
  
      $(document).ready(function() {
      $('#example').DataTable( {
          initComplete: function () {
              this.api().columns().every( function () {
                  var column = this;
                  var select = $('&lt;select multiple="multiple"&gt;&lt;option value=""&gt;&lt;/option&gt;&lt;/select&gt;')
                      .appendTo( $(column.footer()).empty() )
                      .on( 'change', function () {
                          var vals = $('option:selected', this).map(function (index, element) {
                              return $.fn.dataTable.util.escapeRegex($(element).val());
                          }).toArray().join('|');
  
                          column
                              .search( vals.length &gt; 0 ? '^('+vals+')$' : '', true, false )
                              .draw();
                      } );
  
                  column.data().unique().sort().each( function ( d, j ) {
                      select.append( '&lt;option value="'+d+'"&gt;'+d+'&lt;/option&gt;' )
                  } );
              } );
          }
      } );
  } );
  </code></pre>