DataTables下拉过滤器基于tr类名称

时间:2017-01-23 22:51:37

标签: datatables

我可以通过DataTables下拉过滤器中的tr类名称过滤记录吗?

示例我有一个下拉列表如下:

                    <div>
                    <select>
                        <option value="Default">All</option>
                        <option value="Unread">Unread</option>
                    </select>
                </div>

和tr如下:

<tr class="unread">
     <td>test1</<td>
</tr>
<tr class="read">
    <td>test2</<td>
</tr>
<tr class="unread">
   <td>test3</<td>
</tr>

当下拉列表选中未读时,它将调用以下js代码来过滤掉&#34;读取&#34;上课时只显示&#34;未读&#34;班级名称:

     $.fn.dataTable.ext.search.push(
        function (settings, data, dataIndex) {
            var test = settings.nTable.id;
         }
    );

1 个答案:

答案 0 :(得分:0)

您几乎在那里看着添加到search,但您需要引用其中的表api。这似乎有效:

$(function() {
    $.fn.dataTable.ext.search.push(
        function(settings, data, dataIndex) {
            if ($("#selector").val() !== "Default") {
                var api = new $.fn.dataTable.Api(settings);
                return api.row(dataIndex).nodes().to$().hasClass("unread");
            } else {
                return true;
            }
        }
    );
    var example = $("#example").DataTable();
    $("#selector").on("change", function() {
        example.draw();
    });
});

这是一个有效的example,希望有所帮助。