要求小,需要随机选择多个单元格。单击按钮后,我们必须在一条警报消息中显示所有选定的单元格数据。
我尝试了下面的代码,请你帮忙解决这个问题,得到“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);
});
});
答案 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);
});
问题是你需要传递一个对象,但你只传递了文本。