jsp+js 정렬 가능한 표 구현
10042 단어 JavaScripthtmljspcsscache
, js:
/**
*
* @param {} tableId
* @param {} sortColumn
* @param {} nodeType
*/
function sort(tableId, sortColumn, nodeType) {
var table = document.getElementById(tableId);
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;
}
/**
*
* @param {} sortColumn
* @param {} nodeType
* @return {}
*/
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;
}
}
};
}
/**
*
* @param {} value
* @param {} dataType
* @return {}
*/
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="GBK"%>
<%
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 'table.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="${pageContext.request.contextPath}/js/sort.js"></script>
</head>
<body>
<table id="theTable" align="center" border="1">
<thead>
<tr>
<td>
1
</td>
<td onclick="sort(theTable,1,'int')" style="cursor: hand;">
2
</td>
<td onclick="sort(theTable,2,'int')" style="cursor: hand;">
3
</td>
<td onclick="sort(theTable,3,'int')" style="cursor: hand;">
4
</td>
<td onclick="sort(theTable,4,'int')" style="cursor: hand;">
5
</td>
<td onclick="sort(theTable,5,'int')" style="cursor: hand;">
6
</td>
<td onclick="sort(theTable,6,'int')" style="cursor: hand;">
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>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.