// 获取实际输入的内容项
for (var real_row = 0; real_row < td.length; real_row += col - 1) { td_arr.push(td.slice(real_row, real_row + col)); }
table.js 实际输入这里 需要这样改 不然渲染的有问题
回复一脸懵逼啊。LZ这坑有点大的。评论中修改的setContent方法,少数据运行一点问题都没有。但是数据量大的时候就会卡死。
内容置空的处理中,多次循环了。后面内容的赋值,不需要在构造html的循环里面。
// 内容置空 for (var y = 0; y < row; y++) { var tr = $("<tr>"); $(tr).appendTo(table); for (var x = 0 + (col * y); x < col * (y + 1); x++) { $("<td>" + " " + "</td>").appendTo(tr); } $("</tr>").appendTo(table); } // 设置序号 for (var i = 0; i < row; i++) { $("#re tr:eq(" + i + ") td:eq(0)").text(i + 1); } // 设置内容 for (var r = 0; r < td_arr.length; r++) { for (var c = 1; c <= col; c++) { $("#re tr:eq(" + r + ") td:eq(" + c + ")").text(td_arr[r][c - 1]); } }回复
请问一下,
$(document).Table('.table_body','re',51,4,['序号','姓名','年龄','出生地'],[[,,],[,,],[,,]]);
中,最后添加内容这里,怎么修改内容,你的js里面
setContent = function() { var td = new Array(); // $.each(content, function(i, item){ // $.each(item,function(j,val){ // td.push(val); // }); // }); for (var y = 0; y < row; y++) { var tr = $("<tr>"); $(tr).appendTo(table); for (var x = 0 + (col * y); x < col * (y + 1); x++) { $("<td>" + " " + "</td>").appendTo(tr); } $("</tr>").appendTo(table); // 璁剧疆搴?? for (var i = 0; i < row; i++) { $("#re tr:eq(" + i + ") td:eq(0)").text(i + 1); } } };
怎么修改呢?
感谢提问,刚刚发现这个版本的内容设置的地方有BUG,在js中改正如下
setContent = function() { var td = new Array(); var td_arr = new Array(); $.each(content, function(i, item) { $.each(item, function(j, val) { td.push(val); if (td[x] == null) td[x] = " "; }); }); // 获取实际输入的内容项 for (var real_row = 0; real_row < td.length; real_row += col) { td_arr.push(td.slice(real_row, real_row + col)); } // 内容置空 for (var y = 0; y < row; y++) { var tr = $("<tr>"); $(tr).appendTo(table); for (var x = 0 + (col * y); x < col * (y + 1); x++) { $("<td>" + " " + "</td>").appendTo(tr); } $("</tr>").appendTo(table); // 设置序号 for (var i = 0; i < row; i++) { $("#re tr:eq(" + i + ") td:eq(0)").text(i + 1); } // 设置内容 for (var r = 0; r < td_arr.length; r++) { for (var c = 1; c <= col; c++) { $("#re tr:eq(" + r + ") td:eq(" + c + ")").text(td_arr[r][c - 1]); } } } };