DataTables类型错误:...draw不是一个函数。

4

我试图使用自定义输入来搜索/过滤jQuery Datatables表格。我正在使用jQUery 2.1.1和DataTables 1.10.4。我的代码非常简单,并且反映了API文档中的内容:

var table = $('#pList').DataTable({  
    "pageLength": 25,
    "lengthChange": false,
    "ajax": 'partsJSON.cfm'

    });

$('#pdb-filter').on( 'keyup', function () {
    console.log(table);
    table.search( this.value ).draw();
} );

当我运行页面并在输入框中输入内容时,控制台会显示以下信息:
TypeError: table.search(...).draw is not a function 

接着:

Object { context: Array[1], selector: Object, tables: O/q.extend/h/<(), table: O/q.extend/h/<(), draw: O/q.extend/h/<(), page: O/q.extend/h/<(), ajax: Object, rows: O/q.extend/h/<(), row: O/q.extend/h/<(), columns: O/q.extend/h/<(), 14 more… }

我的理解是,“draw”是表格对象中的第五个元素。

此外,当我手动在控制台输入代码时,(当然没有初始化选项),一切正常。我没有收到任何错误信息。

有人有什么想法吗?


1
如果table.search(this.value)没有返回结果,那么draw()函数可能不可用吗? table.search(this.value)返回什么?它是预期的对象吗?调试器是否指示draw()函数可用? - Greg Lafrance
2
很好的发现! 我将该行更改为“table.search($('#pdb-search-term').val()).draw();”。发布回答:我会给你点赞。 - dbrosier
1个回答

0
如果您使用的是datatable版本1.9或更低版本,请使用

table.fnDraw()

从版本1.10开始使用

table.draw()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接