javascript - 如何使用列名搜索数据表?

标签 javascript jquery datatables

我正在尝试根据两列搜索和过滤数据表中的数据。 下面是我用于搜索和重绘数据表的代码。 (http://live.datatables.net/hapijuri/1/edit)

$(document).ready( function () {
  var table = $('#example').DataTable({
    "columns": [  
      { title: 'title0', name: 'name0'},
      { title: 'title1', name: 'name1'},
      { title: 'title2', name: 'name2'},
      { title: 'title3', name: 'name3'},
      { title: 'title4', name: 'name4'},
      { title: 'title5', name: 'name5'},
    ]
  });
  table.column(1).search('Software Engineer')
      .column(0).search('Bradley Greer').draw();
} );

此代码的问题在于它适用于列号(或索引),而不适用于列名称,但是我有要搜索的列名称。

有什么方法可以根据列名而不是数据表 jquery 中的索引进行搜索吗?

编辑:提供更多详细信息以确保我能够很好地提出问题。 因此,我在 UI 上显示了一个数据表,并且我正在使用数据表数据在另一个选项卡中构建一个数据透视表(使用pivottable.js)。

单击数据透视表中的数字时,我希望过滤 UI 上的数据表数据,以便仅显示与数据透视表中单击的数字相关的行。

我从数据透视表中获取与该数字对应的列名称和值。我只需要搜索数据表中的这些列值并相应地显示数据表的过滤器。

正如我共享的示例链接中所指出的,我能够根据列索引搜索数据,并且这同样会反射(reflect)在 UI 上。 我正在寻找的是根据列名称而不是列值进行搜索。

最佳答案

为了防止从表中搜索列,您必须添加 searchable:false。默认情况下,searchable & orderable 的值为 true

var table = $('#example').DataTable({
    "columns": [  
        { title: 'title0', name: 'name0', "searchable": true},
        { title: 'title1', name: 'name1'},
        { title: 'title2', name: 'name2'},
        { title: 'title3', name: 'name3'},
        { title: 'title4', name: 'name4'},
        { title: 'title5', name: 'name5'},
    ]      
});

除非您有服务器端数据处理,否则无需添加以下代码。

 table.column(1).search('Software Engineer')
     .column(0).search('Bradley Greer').draw();

关于javascript - 如何使用列名搜索数据表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59840752/

相关文章:

javascript附加到文本文件忽略元素

javascript - 数据表排序不适用于 dd-mm-yyyy 格式

javascript - 让 JSONP 正常工作

php - 将 DataTables 与 Bootstrap 主题一起使用,jQuery $.get 函数

javascript - DataTables、es6 箭头函数和 this

javascript - 在构造函数 Vue JS 之后推送函数将空对象传递到数组中

javascript - 如何更改链接的文本和功能?

javascript - 如何通过 jQuery ajax 调用访问 JSON 数据?

javascript - 对象数组[key]

javascript - 如何在 Jquery 中使用鼠标事件