Uncaught TypeError: Cannot read property 'nTr' of undefined

Uncaught TypeError: Cannot read property 'nTr' of undefined

问题是,当我调用 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 代码隐藏(显示:none)

有什么解释吗?

这是因为您将复选框元素传递给 oTT.fnSelect(visibileSelectedRows) 中的 fnSelect

$("#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);
            });