dataTables 1.10.4:<object>.row 不是函数错误
dataTables 1.10.4 : <object>.row is not a function error
根据 Generated Content for a Column 的提示,我使用相同的代码将 'Delete' 选项添加为返回数据中的额外列。 'Delete' 选项出现在 table 中,但是当我点击它时,我得到
t.row is not a function
错误。下面是我正在使用的代码:
var t = $("table#available_profiles").dataTable({
"processing": true,
"serverSide": true,
"ajax": "retrieve_profiles",
"columns": [
{ data: 0 },
{ data: 1 },
{ data: 2 },
{ data: 3 },
{ data: 4 },
{ data: 5 },
{ data: 6 },
{
data: null,
defaultContent: '<a href="#" class="remove">DELETE</a>',
orderable: false
},
],
"columnDefs": [ {
"searchable": false,
"orderable": false,
"targets": 0
} ],
"order": [[ 5, "desc" ]]
});
$('table#available_profiles').on( 'click', 'a.remove', function () {
var data = t.row( $(this).parents('tr') ).data(); // error here
alert( data[1] +"'s salary is: "+ data[ 7 ] );
return false;
} );
table 正在使用从服务器端处理的数据绘制。因此,无论是插件 js 还是服务器端代码,都没有丢失 js 文件或语法错误。
据我所知,t
也是一个全局变量。所以它应该在 a.remove
click 函数中可用。但我 运行 不知道为什么这不起作用。
更新
正在做
console.log(t);
返回以下内容:
而且我在任何地方都找不到 row()
函数。这怎么可能?
好的。我解决了。问题是我将插件称为
$("table#available_profiles").dataTable({....});
本来应该是
$("table#available_profiles").DataTable({...}); // notice the capital D
根据 Generated Content for a Column 的提示,我使用相同的代码将 'Delete' 选项添加为返回数据中的额外列。 'Delete' 选项出现在 table 中,但是当我点击它时,我得到
t.row is not a function
错误。下面是我正在使用的代码:
var t = $("table#available_profiles").dataTable({
"processing": true,
"serverSide": true,
"ajax": "retrieve_profiles",
"columns": [
{ data: 0 },
{ data: 1 },
{ data: 2 },
{ data: 3 },
{ data: 4 },
{ data: 5 },
{ data: 6 },
{
data: null,
defaultContent: '<a href="#" class="remove">DELETE</a>',
orderable: false
},
],
"columnDefs": [ {
"searchable": false,
"orderable": false,
"targets": 0
} ],
"order": [[ 5, "desc" ]]
});
$('table#available_profiles').on( 'click', 'a.remove', function () {
var data = t.row( $(this).parents('tr') ).data(); // error here
alert( data[1] +"'s salary is: "+ data[ 7 ] );
return false;
} );
table 正在使用从服务器端处理的数据绘制。因此,无论是插件 js 还是服务器端代码,都没有丢失 js 文件或语法错误。
据我所知,t
也是一个全局变量。所以它应该在 a.remove
click 函数中可用。但我 运行 不知道为什么这不起作用。
更新
正在做
console.log(t);
返回以下内容:
而且我在任何地方都找不到 row()
函数。这怎么可能?
好的。我解决了。问题是我将插件称为
$("table#available_profiles").dataTable({....});
本来应该是
$("table#available_profiles").DataTable({...}); // notice the capital D