如何在同一数据表上搜索2个值

时间:2019-01-18 12:20:39

标签: javascript jquery html

我正在尝试让我的输入搜索字段在JS中同时在2个不同的列中搜索2个值。我已经开始使用1值搜索此代码:

$("#boo").click(function(){
    var table = $('#table').DataTable();
       table.search("boo").draw();
});

我尝试使用column()。search(),但无法正常工作:

$("#boo").click(function(){
    var table = $('#table').DataTable();
       table.column([2,3]).search("boo", "New").draw();
});

我正在尝试过滤表格,例如性别和类型,您能帮我吗?

3 个答案:

答案 0 :(得分:1)

尝试使用 .columns 代替 .column

$("#boo").click(function(){
    var table = $('#table').DataTable();
       table.columns([2,3]).search("boo", "New").draw();
});

请参阅DataTables文档here

函数column().search()将搜索特定的列,而columns()。search()允许您搜索数组中定义的多个列。

编辑

我刚刚在您的示例中添加了一行:

$("#boo").click(function(){
    var table = $('#table').DataTable();
    table.search("boo").draw();
    table.columns([2,3]).filter("boo", "New").draw();
});

答案 1 :(得分:0)

只需搜索2列:

$("#boo").click(function(){
    var table = $('#table').DataTable();
    table.column(2).search("male");
    table.column(3).search("asia").draw();
});

答案 2 :(得分:0)

.draw()函数不会执行您没有告知的任何操作。简而言之,您可以运行许多不同的事件,然后使用.draw()进行调用。就像Zim84建议的那样,您可以在2个不同的列中进行搜索,但是在第一个列中,您不会.draw(),但是在第二个搜索中将调用.draw()

所以..是的,做类似

table.column(2).search("male"); table.column(3).search("asia").draw();

会很好。