首先,定义一个js:
tableSort.js:
function sort(tableId, sortColumn,nodeType) { var table = document.getElementById("theTable"); var tableBody = table.tBodies[0]; var tableRows = tableBody.rows; var rowArray = new Array(); for (var i = 0; i < tableRows.length; i++) { rowArray[i] = tableRows[i]; } if (table.sortColumn == sortColumn) { rowArray.reverse(); } else { rowArray.sort(generateCompareTR(sortColumn, nodeType)); } var tbodyFragment = document.createDocumentFragment(); for (var i = 0; i < rowArray.length; i++) { tbodyFragment.appendChild(rowArray[i]); } tableBody.appendChild(tbodyFragment); table.sortColumn = sortColumn; } function generateCompareTR(sortColumn, nodeType) { return function compareTR(trLeft, trRight) { var leftValue = convert(trLeft.cells[sortColumn].firstChild.nodeValue, nodeType); var rightValue = convert(trRight.cells[sortColumn].firstChild.nodeValue, nodeType); if (leftValue < rightValue) { return -1; } else { if (leftValue > rightValue) { return 1; } else { return 0; } } }; } function convert(value, dataType) { switch (dataType) { case "int": return parseInt(value); case "float": return parseFloat(value); case "date": return new Date(Date.parse(value)); default: return value.toString(); } }
然后是使用:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'tabel.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript" src="userjs/tableSort.js"></script> </head> <body> <table id="theTable" align="center" border="1"> <thead> <tr> <td> 标题1 </td> <td onclick="sort(theTable,1,'int')"> 标题2 </td> <td onclick="sort(theTable,2,'int')"> 标题3 </td> <td onclick="sort(theTable,3,'int')"> 标题4 </td> <td onclick="sort(theTable,4,'int')"> 标题5 </td> <td onclick="sort(theTable,5,'int')"> 标题6 </td> <td onclick="sort(theTable,6,'int')"> 标题7 </td> </tr> </thead> <tbody> <tr> <td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td> <td> 6 </td> <td> 7 </td> </tr> <tr> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td> <td> 6 </td> <td> 7 </td> <td> 1 </td> </tr> <tr> <td> 3 </td> <td> 4 </td> <td> 5 </td> <td> 6 </td> <td> 7 </td> <td> 1 </td> <td> 2 </td> </tr> <tr> <td> 4 </td> <td> 5 </td> <td> 6 </td> <td> 7 </td> <td> 1 </td> <td> 2 </td> <td> 3 </td> </tr> <tr> <td> 5 </td> <td> 6 </td> <td> 7 </td> <td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> </tr> <tr> <td> 6 </td> <td> 7 </td> <td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td> </tr> </tbody> </table> </body> </html>
然后就可以看到效果了,呵呵