如何使用数据表

时间:2018-03-07 17:17:25

标签: javascript jquery datatables

要求小,需要随机选择多个单元格。单击按钮后,我们必须在一条警报消息中显示所有选定的单元格数据。

我尝试了下面的代码,请你帮忙解决这个问题,得到“Uncaught TypeError: Cannot read property 'length' of undefined”错误

$(document).ready(function() {
    var table = $('#example').DataTable();

    $('#example tbody').on( 'click', 'td', function () {
         $(this).toggleClass('selected'); 
    } );

    $('#button').click(function() {
        var cellData = table.cell('.selected').data();
        var consoleMsg = '';
        for (var i = 0; i < cellData.length; i++) {
            consoleMsg += cellData[i] + '\n';
        }
        alert(consoleMsg);
    });
});

Fiddle

1 个答案:

答案 0 :(得分:1)

快速查看您的代码,当this是您的this时,我无法看到您希望将数据表数据转换为$('#button')

$('#button').click(function() {
        var cellData = table.cell( this ).data(); // this = #button not your #table
        var consoleMsg = '';
        for (var i = 0; i < cellData.length; i++) {
            consoleMsg += cellData[i] + '\n';
        }
        alert(consoleMsg);
    });

您期望this有什么价值?

更新: 好的,所以看着你的小提琴,你需要改变你的代码:

$('#button').click(function() {
        var cellData = table.cell($('.selected').data());
        //console.log(cellData);
        var consoleMsg = '';
        for (var i = 0; i < cellData.length; i++) {
            consoleMsg += cellData[i];
        }
        alert(consoleMsg);
    });

问题是你需要传递一个对象,但你只传递了文本。