javascript - jQuery 数据表中的下拉过滤

标签 javascript jquery datatables

链接到CodePen .

我正在使用Datatables jQuery plugin对于这个表。

我正在尝试弄清楚如何实现顶部的“按位置过滤”下拉列表。例如,如果您从下拉列表中选择 Bracebridge,它只会显示带有 Bracebridge 的产品。我尝试过使用 column().search() function来自数据表,很难让它工作。

HTML

<!--Filter-->
          <p>Filter By Location</p>
          <select id="locfilter" name="location">
            <option value="">All</option>
            <option value="Ajax">Ajax</option>
            <option value="Barrie">Barrie</option>
            <option value="Belleville">Belleville</option>
            <option value="Bracebridge">Bracebridge</option>
            <option value="Bradford">Bradford</option>
            <option value="Brampton">Brampton</option>
            <option value="Brantford">Brantford</option>
            <option value="Burlington">Burlington</option>
            <option value="Cambridge">Cambridge</option>
            <option value="Cobourg">Cobourg</option>
            <option value="Concord">Concord</option>
            <option value="Gloucester">Gloucester</option>
            <option value="Gormley">Gormley</option>
            <option value="Guelph">Guelph</option>
            <option value="Hamilton">Hamilton</option>
            <option value="Kingston">Kingston</option>
            <option value="London">London</option>
            <option value="Milton">Milton</option>
            <option value="Napanee">Napanee</option>
            <option value="Niagara Falls">Niagara Falls</option>
            <option value="North Bay">North Bay</option>
            <option value="Ottawa">Ottawa</option>
            <option value="Owen Sound">Owen Sound</option>
            <option value="Peterborough">Peterborough</option>
            <option value="Sarnia">Sarnia</option>
            <option value="Sault Ste Marie">Sault Ste Marie</option>
            <option value="Sudbury">Sudbury</option>
            <option value="Timmins">Timmins</option>
            <option value="Toronto">Toronto</option>
            <option value="Trenton">Trenton</option>
            <option value="Waterloo">Waterloo</option>
            <option value="Windsor">Windsor</option>
            <option value="Woodstock">Woodstock</option>
          </select>

JS(只有这个片段可以拉入表格)

$(document).ready(function() {
  $("#used-equip-table").DataTable();
});

最佳答案

将您的 JavaScript 部分更新为:

$(document).ready(function() {

  // create a variable for your table, so we can refer to it below:
  var table = $("#used-equip-table").DataTable();

  // add events to your drop-down control, to detect changes:
  $('#locfilter').on( 'keyup change clear', function () {
    table.draw();
  } );

  // use the following to process filter/search changes:
  $.fn.dataTable.ext.search.push(
    function( settings, data, dataIndex ) {
      var selectedValue = $('#locfilter').val();
      if (data[4].includes(selectedValue)) { // 4 = the fifth column!
        return true;
      } else {
        return false;
      }
    }
  );

});

上面显示的 ext.search.push 函数是 search 插件的一部分,描述为 here .

关于javascript - jQuery 数据表中的下拉过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60636771/

相关文章:

javascript - webkit 浏览器中的全屏 API

javascript - IE8 将缓存中的动态 iframe 内容重新加载到错误的 iframe 中

javascript - 启用js重定向到apache服务器的私有(private)文件夹

jquery - 使用 jquery 获取所选选项的值

javascript - 如何提高 9,999 行 DOM jquery DataTable 的性能/速度?

javascript - 可排序列表包含给定数字之间的jquery

javascript - 一旦总和达到 100,禁用其余数字框

javascript - 在 Elementor 的 Fullpage JS 中添加水平幻灯片之间的过渡效果

javascript - 如何通过可点击的列在同一页面中搜索值

javascript - jQuery 数据表标题与垂直滚动不对齐