jQuery DataTables未定义

时间:2018-10-17 12:35:23

标签: jquery datatables

我正在使用jquery dataTable进行单个列搜索(选择输入)

<script src="~/Scripts/jquery-3.3.1.js"></script>
<script src="~/Scripts/jquery.dataTables.min.js"></script>
<link href="~/Content/jquery.dataTables.min.css" rel="stylesheet" />

$(document).ready(function() {
$('#tblDemo').DataTable({
    initComplete: function () {
        this.api().columns().every(function () {
            var column = this;
            var select = $('<select><option value=""></option></select>')
                .appendTo($(column.footer()).empty())
                .on('change', function () {
                    var val = $.fn.dataTable.util.escapeRegex(
                        $(this).val()
                    );
                    column
                        .search(val ? '^' + val + '$' : '', true, false)
                        .draw();
                });
            column.data().unique().sort().each(function (d, j) {
                select.append('<option value="' + $(d).text().trim() + '">' + $(d).text().trim() + '</option>')
            });
        });
    },
    orderCellsTop: false,
    fixedHeader: true,
    ordering: false,
    lengthChange: false,
});
});

我面临的问题是DataTables搜索无法使用
它在

处带有 dataTable undefine
$.fn.dataTable.util.escapeRegex(
    $(this).val()
);

此行 请帮我解决

2 个答案:

答案 0 :(得分:0)

看来,当文档尚未完全准备就绪时,脚本就会运行。 尝试将您的代码包装在其中:

$(document).ready(function() {
    // your code here
});

答案 1 :(得分:-1)

如果您使用jquery,请将此脚本添加到head标签中

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