jQuery+Ajax 는 표 데이터 의 서로 다른 열 제목 정렬 을 실현 합 니 다(표 에 활력 을 불 어 넣 습 니 다)

6027 단어 표 데이터정렬
표 는 모두 가 잘 알 고 있 으 며,현재 의 CSS 도 표 의 구 조 를 더욱 빛나 게 한다.그러나 어쨌든 포 장 된 딱딱 한 부분 은 감 출 수 없다.그러면 어떻게 하면 그 딱딱 한 데 이 터 를 더욱 읽 을 수 있 고 가용성 을 가지 게 하여 우리 의 그 데 이 터 를'움 직 일 수 있 습 니까?'다음은 jquery+ajax 를 사용 하여 표 에 활력 을 불 어 넣 습 니 다.주로 실 현 된 목적 은 표 의 열 제목 을 단추 로 바 꾸 고 서로 다른 열 제목 을 클릭 하면 해당 열 에 따라 데 이 터 를 정렬 하 는 것 이다.예 를 들 어 학생 정보 표 에서 나 는'생일'열 을 클릭 하면 이 시 계 는 생일 순서에 따라 결 과 를 우리 앞 에 나타 낸다.ajax 를 사용 하여 이 페이지 를 호출 하 는 것 도 페이지 새로 고침 에 따 른 고통 을 피 할 수 있 습 니 다.다음은 제 가 가장 기본 적 인 jsp 페이지를 드 리 겠 습 니 다. 자세 한 코드 는 다음 과 같 습 니 다
 
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
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 'sorttable.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="js/jquery-1.4.4.js"></script>
</head>
<body>
<table class = "sorttable" style="background-color: gray;color: white;">
<thead>
<tr >
<th></th>
<th class="sort-alpha">Title</th>
<th>Author</th>
<th>PublishDate</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td><img src="<%=path %>/images/javascript.jpg" width="40" height="50" alt="JavaScript" /></td>
<td>JavaScript</td>
<td> Douglas Crockford </td>
<td> May 2008</td>
<td>$31.02</td>
</tr>
<tr>
<td><img src="<%=path %>/images/Ajax.jpg" width="40" height="50" alt="AJAX and PHP:Building Responsive Web Applications" /></td>
<td>AJAX and PHP:Building Responsive Web Applications</td>
<td>Cristian Darie,Mihak Bucica</td>
<td> Mar 2006</td>
<td>$31.02</td>
</tr>
<tr>
<td><img src="<%=path %>/images/Learning.jpg" width="40" height="50" alt="Learning Mambo" /></td>
<td>Learning Mambo</td>
<td>Douglas Paterson</td>
<td> Mar 2006</td>
<td>$31.02</td>
</tr>
<tr>
<td><img src="<%=path %>/images/Think.jpg" width="40" height="50" alt="Thinking in java" /></td>
<td>Thinking in java</td>
<td>Bruce Eckel </td>
<td> Feb 2006</td>
<td>$33.02</td>
</tr>
<tr>
<td><img src="<%=path %>/images/jQuery.jpg" width="40" height="50" alt="jQuery in Action, Second Edition" /></td>
<td>jQuery in Action, Second Edition</td>
<td>Bear Bibeault / Yehuda Katz
</td>
<td> Apr 2010</td>
<td>$35.02</td>
</tr>
</tbody>
</table>
</body>
</html>
첫 번 째 단계:표 에 패 리 티 교체 배경 추가 
 
<style type="text/css">
.even{
background-color: #E8A824;
}
.odd{
background-color:#74411B;
}
</style>
두 번 째 단계:알파벳 순 으로 표 기반 의 Title 열 을 정렬 합 니 다.Title는 Title 에 sort-alpha 류
 
<script type="text/javascript" language="javascript">
$(document).ready(function(){
var alternateRowColors = function($table){
$('tbody tr:odd',$table).removeClass('even').addClass('odd');
$('tbody tr:even',$table).removeClass('odd').addClass('even')
};
$('table.sorttable').each(function (){
var $table =$(this);
alternateRowColors($table);
$('th',$table).each(function(column){
var $header = $(this);
if($header.is('.sort-alpha')){
$header.addClass('clickable').hover(function(){
$header.addClass('hover');
},function(){
$header.removeClass('hover');
}).click(function(){
var rows = $table.find('tbody>tr').get();
rows.sort(function(a,b){
var keyA =$(a).children('td').eq(column).text().toUpperCase();
var keyB =$(b).children('td').eq(column).text().toUpperCase();
if(keyA<keyB) return -1;
if(keyA>keyB) return 1;
return 0;
});
$.each(rows,function(index,row){
$table.children('tbody').append(row);
});
alternateRowColors($table);
});
}
});
});
});
</script>
를 정의 합 니 다.마지막 으로 Title 을 클릭 할 때 최종 효과: 다른 유형의 정렬 은 다음 과 같 습 니 다.

좋은 웹페이지 즐겨찾기