为了账号安全,请及时绑定邮箱和手机立即绑定

使用数据表进行高级搜索

使用数据表进行高级搜索

临摹微笑 2021-11-25 16:26:53
我想知道有没有办法改进数据表中的搜索?我在数据表中有一个数字列。是否可以只返回正在搜索的号码?例如:100 210 310 1如果我搜索 1 我只想显示 :1 而不是其他包含 1 jQuery(document).ready(function ($) {    var db = $('#min-table').DataTable({        "dom": '<"pull-left"f><"pull-right"l>tip',        "bJQueryUI": true,        "bSort": true,        "bSearchable": true,        "bPaginate": true,        "lengthMenu": [[20, 35, 50, -1], [20, 35, 50, "All"]],        "iDisplayLength": 20    });});
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

您可以使用数据表插件来覆盖某些功能。在您的情况下,您可以将自定义函数添加到$.fn.dataTable.ext.search.push


$.fn.dataTable.ext.search.push(

    function( settings, data, dataIndex ) {

     const searchTerm = $("[type=search]").val();

     if(searchTerm){

       return data[3] === searchTerm

     }else{

       return true;

     }

    }

);

在上面的代码中,我在每行的第四列上使用全文搜索。将根据函数的返回值(真或假)包含或排除行。


参考:https : //datatables.net/examples/plug-ins/


试试下面的代码片段。在年龄列上启用全文搜索。


$.fn.dataTable.ext.search.push(

    function( settings, data, dataIndex ) {

     const searchTerm = $("[type=search]").val();

     if(searchTerm){

       return data[3] === searchTerm

     }else{

       return true;

     }

    }

);


var table = $('#example').DataTable();

<link href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css" rel="stylesheet"/>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/jquery.dataTables.min.js"></script>

<table id="example" class="display" style="width:100%">

        <thead>

            <tr>

                <th>Name</th>

                <th>Position</th>

                <th>Office</th>

                <th>Age</th>

                <th>Start date</th>

                <th>Salary</th>

            </tr>

        </thead>

        <tbody>

            <tr>

                <td>Tiger Nixon</td>

                <td>System Architect</td>

                <td>Edinburgh</td>

                <td>61</td>

                <td>2011/04/25</td>

                <td>$320,800</td>

            </tr>

            <tr>

                <td>Garrett Winters</td>

                <td>Accountant</td>

                <td>Tokyo</td>

                <td>63</td>

                <td>2011/07/25</td>

                <td>$170,750</td>

            </tr>

            <tr>

                <td>Ashton Cox</td>

                <td>Junior Technical Author</td>

                <td>San Francisco</td>

                <td>66</td>

                <td>2009/01/12</td>

                <td>$86,000</td>

            </tr>

            <tr>

                <td>Cedric Kelly</td>

                <td>Senior Javascript Developer</td>

                <td>Edinburgh</td>

                <td>22</td>

                <td>2012/03/29</td>

                <td>$433,060</td>

            </tr>

      </tbody>

 </table>


查看完整回答
反对 回复 2021-11-25
  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信