$(document).ready( function() { var array = $(".tableCell span"); for ( var i = 0; i < array.length; i++) { var height = array[i].offsetHeight; if (height > 65) { var content = array[i].innerHTML; var width = array[i].offsetWidth; if (content.length > (4 * 15 * width / 100 - 3)) { array[i].innerHTML = content.substring(0, 4 * 15 * width / 100 - 3) + '...'; } content = content.replace(/</g, "<"); content = content.replace(/>/g, ">"); content = content.replace(/&/g, "&"); array[i].setAttribute("title", content); } } hideColumn(); }); function hideColumn() { var array = $(".gridTable tr"); for ( var i = 0; i < array.length; i++) { var td = array.eq(i).children("td"); for ( var j = 0; j < td.length; j++) { if (j > 6) { td[j].style.display = "none"; } } } $("#showButton").show(); $("#hideButton").hide(); } function showColumn() { var array = $(".gridTable tr"); for ( var i = 0; i < array.length; i++) { var td = array.eq(i).children("td"); for ( var j = 0; j < td.length; j++) { if (j > 6) { td[j].style.display = ""; } } } $("#showButton").hide(); $("#hideButton").show(); }
最近公司正好有这方面的需求,所以用jquery写了一下,以上代码控制表格列数在7列,超过7列的隐藏起来,当触发showColumn()方法时才全部列出来,另外每个单元格高度控制在4行(这个不是很精确,因为换行是按分词来换的),超过的部分截掉以...表示,当鼠标移过时显示该单元格的全部信息。
代码在ie8和firefox5下测试通过