问题在于,当我致电 fnSelect 时,我在Chrome上遇到错误:
Uncaught TypeError: Cannot read property 'nTr' of undefined
这是我的代码:
$('#ToolTables_table_id_0, #ToolTables_table_id_1').mousedown(function(){
var oTT = TableTools.fnGetInstance('table_id');
var rowsToBeExported = $('#table_id tbody tr:visible');
var visibileSelectedRows = $("#table_id tbody tr input[checked='checked']");
if(visibileSelectedRows.size() > 0 ){
console.log(visibileSelectedRows);
console.log(rowsToBeExported);
oTT.fnSelect(visibileSelectedRows);
}else{
$('input', rowsToBeExported).attr('checked','checked');
}
console.log(rowsToBeExported.size() + " row(s) will be exported.");
oTT.fnSelect(rowsToBeExported);
});
行
触发错误oTT.fnSelect(visibileSelectedRows);
而行
oTT.fnSelect(rowsToBeExported);
不
我有11列,最后一列被css代码隐藏(显示:无)
请问有什么解释吗?
答案 0 :(得分:2)
这是因为您将复选框元素传递给fnSelect
中的oTT.fnSelect(visibileSelectedRows)
。
$("#table_id tbody tr input[checked='checked']")
将为您提供复选框元素。您需要找到其父tr
并将其传递给fnSelect
。试试这个。
$('#ToolTables_table_id_0, #ToolTables_table_id_1').mousedown(function(){
var oTT = TableTools.fnGetInstance('table_id');
var rowsToBeExported = $('#table_id tbody tr:visible');
var visibileSelectedRows = $("#table_id tbody tr input[checked='checked']");
if(visibileSelectedRows.size() > 0 ){
console.log(visibileSelectedRows);
console.log(rowsToBeExported);
oTT.fnSelect(visibileSelectedRows.closest('tr'));
}else{
$('input', rowsToBeExported).attr('checked','checked');
}
console.log(rowsToBeExported.size() + " row(s) will be exported.");
oTT.fnSelect(rowsToBeExported);
});