我想在jQuery dataTables中为1
添加一个自定义参数。
这是我的代码的一部分:
2
但是收到错误,
TypeError:this.api不是函数
var api = this.api(),data;
我哪里错了?
答案 0 :(得分:1)
您正尝试访问this
上不存在的dataTable API。每个dataTable方法或回调都会返回API或可通过this
上下文访问的API,但如果您想在自己的函数中对this.api()
进行操作,则必须自行传递。您可以使用apply()
:
dataTableFooterCallback()
来完成此操作
footerCallback: function() {
dataTableFooterCallback.apply(this, arguments)
}
现在您已将this
传递给dataTableFooterCallback
,并且可以访问API:
function dataTableFooterCallback(type, row, data, start, end, display) {
//get first row trough the API
console.log(this.api().row(0).data())
//rest of passed arguments same as footerCallback()
console.log(arguments)
}
演示 - >的 http://jsfiddle.net/95h3a8nw/ 强>
向arguments
添加额外变量有点棘手,因为arguments
不是真正的数组,它没有push()
等原型方法。此解决方法将起作用:
footerCallback: function() {
var newArguments = Array.prototype.slice.call(arguments)
newArguments.push('client')
dataTableFooterCallback.apply(this, newArguments)
}
现在在dataTableFooterCallback()
'client'
中添加了函数调用中的最后一个参数。查看更新的小提琴 - >的 http://jsfiddle.net/95h3a8nw/1/ 强>