<script>
jQuery(document).ready(function () {
$('#sample_3 tfoot th').each(function () {
var title = $('#sample_3 thead th').eq($(this).index()).text();
$(this).html('<input type="text" placeholder="Search ' + title + '" />');
});
// DataTable
var table = $('#sample_3').dataTable();
// Apply the filter
table.columns().eq(0).each(function (colIdx) {
$('input', table.column(colIdx).footer()).on('keyup change', function () {
table
.column(colIdx)
.search(this.value)
.draw();
});
});
});
</script>
字符串
我得到了table.columns不是一个函数js错误,缺少了什么我不明白。
来源:https://datatables.net/examples/api/multi_filter.html
9条答案
按热度按时间tvz2xvvm1#
尝试更改
字符串
到
型
.也就是说,将
DataTable()
大写。来源:https://datatables.net/manual/api#Accessing-the-API2g32fytz2#
变更:
字符串
致:
型
对我很有效。
zzwlnbp83#
我用dataTables的makeEditable()函数尝试了这个方法。如果我用DataTables()改变dataTables(),它就不工作了。
h0mayun的答案对我来说很有用。为了防止其他人搜索这个问题,我在h0mayun的评论中添加了一点东西。
字符串
并删除以下部分
型
希望能帮上忙。
fdbelqdn4#
以前的答案都没有解决我的问题。
我发现的解决方案是使用
table.api().column(colIdx)
而不是table.column(colIdx)
。我为一个包含姓名和年龄的表开发的工作示例:
字符串
希望对你有帮助。
7lrncoxx5#
试试这个
字符串
mwyxok5s6#
谢谢你的帮助。我有同样的错误信息。但在尝试了几乎所有的东西后,我发现,我的错误只是没有有一个
块在我的dataTable中。插入这个修复了它,我的dataTable可以将搜索输入附加到这个tfoot。
j0pj023g7#
这个问题已经有一段时间没有被问到了,但我还是把这个贴出来,因为它可能会帮助到别人。
我有类似的问题,经过一些搜索,我意识到我必须包括文件位于-http://jquery-datatables-column-filter.googlecode.com/svn/trunk/media/js/jquery.dataTables.columnFilter.js到我的代码。
mm5n2pyu8#
我知道这是一个2岁的帖子,但它仍然是在搜索这个问题时在谷歌搜索结果的顶部.所以我有同样的问题,但我没有改变代码修复它.我的代码的问题是,我使用了旧的jQuery或Datatables版本(不确定哪一个造成的麻烦),所以我在Datatables网站上生成一个新的链接:
https://datatables.net/download/index
包括jQuery2.x和其余的默认设置:
第一个月
因此,您必须删除包含的jQuery库和Datatables库,因为它们都包含在此链接中。之后,一切正常,没有任何错误.
所以我明白了为什么问题出在旧版本上:在旧版本的Datatables中,datatable是用函数调用的:
字符串
因此,旧版本的表被返回,其中不包括函数
<tablevarname>.columns()
,所以调用新函数:$('#dt1').DataTable();
应该修复它(正如Rizzim已经说过的),但要做到这一点,你必须更新你的数据表,所以函数被包括在内.(英语:Bad English)
ctzwtxfj9#
我遇到了类似的问题,我建议尝试这个解决方案:
将
table.column(colIdx).footer()
替换为table.**DataTable()**.column(colIdx).footer())
这应该可以解决问题。