//整體思路還是老樣子:在前面插入一個新table,裡面只有表頭,然後設定資料表格的高度使其滾動即可。
//由於table的表頭的寬度會根據內容或者下面行的內容改變,所以我們需要用的col標記來固定他的寬度,格式如:<col width='200px'></col>
//方法調用:直接傳進去表格的id和想要滾動的高度就可以了jQuery.fn.outerHTML = function (s) { return s ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html();};//這個是擷取元素的全部html,下面複製表頭的時候要用到,因為複製表頭的時候需要把樣式也複製過去(如果裡面沒任何樣式就免了。。)function fixHeader(tableID,height) { var table = $("#" + tableID); var headers = table.find("th").length > 0 ? table.find("th") : table.find("tr:first"); var colHTML = ""; //最後一個col不用管,讓它自己去適應 for (var i = 0; i < headers.find("td").length - 1; i++) { colHTML += "<col width = '" + headers.find("td:eq(" + i + ")").width() + "'></col>"; } //插入表頭 table.before("<table class='thead'>" + colHTML + "<tbody>" + headers.outerHTML() + "</tbody></table>"); //重設表頭的寬度 $(".thead").width(table.width()); //原表中插入col標記 table.find("tbody").before(colHTML); table.css("display", "block").height(height).css("overflowY", "scroll"); if ($.browser.msie) { //IE下表格不能通過設定表格高度來實現滾動 table.wrap("<div class='tablewrap'></div>"); //$(".tablewrap").width(table.width(); $(".tablewrap").height(height).css("overflowY", "auto").css("overflowX", "hidden"); } //刪除第一行 headers.height(0).find("td").html("").height(0);}//自己寫的方法,,菜鳥作品,如果有Bug,還望指正。。