jQuery数据表属性

时间:2018-07-16 06:03:58

标签: javascript jquery datatables

我正在一个Web项目中工作,在该项目中使用JQuery Datatables,我面临的唯一挑战是如何获取或访问数据表的属性和线索,例如:搜索值,顺序,限制,...使用JavaScript和JQuery。 预先感谢。

我使用过的一些代码:

function loadDestroyedGoods() {
    var start_date = $("#start_date").val();
    var end_date = $("#end_date").val();
    if (start_date && end_date) {
        var dataTable = $('.g_tbl').DataTable({
            "processing": true,
            "serverSide": true,
            "destroy": true,
            "lengthChange": true,
            "lengthMenu": [20, 50, 100, 500, 1000],
            "pageLength": 10,
            "ajax": {
                "url": "/loadGoodsDestroyed",
                "type": "POST",
                "dataType": "json",
                "dataSrc": "data",
                "data": {start_date: start_date, end_date: end_date}
            },
            "columns": [
                {"data": "name"},
                {"data": "status"},
                {"data": "count"},
                {"data": "price"},
                {"data": "consumer"},
                {"data": "date"}
            ]
        });
    }
}

这就是我想要的:

我想要的是如何获取数据表的属性,而不是如何将自定义数据加载到其中。我在这里不需要服务器端的参与,我想要的只是如何获取用户为搜索输入的值,用户用来对行进行排序的顺序

1 个答案:

答案 0 :(得分:0)

您可以将以下行添加到JavaScript中以提取全局搜索过滤器值。 (如果您使用的是链接的同一表,则不更改表的任何ID)。

这是该页面上搜索字段的代码:

enter image description here

下面的查询在您的页面中查找example filter id,它是div id,在里面寻找label标记,其中有input type="search",因此我在下面使用它提取了该搜索字段的值。

    $("#example_filter > label > input").val();

这是其工作的证明:

enter image description here

,您可以使用以下脚本获取排序列的名称和索引(还包括页面加载时的默认排序):

$(document).ready(function (){
    var table = $('#example').DataTable();
    $("#example").dataTable().bind('click', function () {
      var order = table.order();
      alert( 'Table is ordered by column: '+order[0][0]+', direction:' + order[0][1]);
      var title = table.column(order[0][0]).header();
       alert( 'Ordering column title: '+$(title).html() );
        });

    var order = table.order();
    alert( 'Table is ordered by column: '+order[0][0]+', direction:' + order[0][1]);

    var title = table.column(order[0][0]).header();
    alert( 'Ordering column title: '+$(title).html() );
});