`
lcb530
  • 浏览: 55752 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

表格排序

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>
 <script language="javascript">
	function compare(value1,value2,type){
		switch (type)
		{
			case "int":
				if(parseInt(value1)==parseInt(value2)){
					return 0;
				}else{
					return parseInt(value1)>parseInt(value2)?1:-1;
				}
			case "float":
				if(parseFloat(value1)==parseFloat(value2)){
					return 0;
				}else{
					return parseFloat(value1)>parseFloat(value2)?1:-1;
				}
			case "date":
				var date1 = new Date(Date.parse(value1));
				var date2 = new Date(Date.parse(value2));
				if(date1==date2){
					return 0;
				}else{
					return date1>date2?1:-1;
				}
			default:
				var value1 = value1.toString();
				var value2 = value2.toString();
				return value1.localeCompare(value2);
	   }
	}
	
	function swapNode(node1,node2){
		//获取父结点
		var _parent=node1.parentNode;
		//获取两个结点的相对位置
		var _t1=node1.nextSibling;
		var _t2=node2.nextSibling;
		//将node2插入到原来node1的位置
		if(_t1)_parent.insertBefore(node2,_t1);
		else _parent.appendChild(node2);
		//将node1插入到原来node2的位置
		if(_t2)_parent.insertBefore(node1,_t2);
		else _parent.appendChild(node1);
	} 

	function ascSort(stable,index,type){
		var mytable = document.getElementById(stable);
		var trObj = mytable.rows;

		for(var i=1;i<trObj.length-1;i++){
			for(var j=1;j<trObj.length-1;j++){
				var colValue1 = trObj[j].cells[index].innerText;
				var colValue2 = trObj[j+1].cells[index].innerText;
				
				var result = compare(colValue1,colValue2,type);
				//alert("colValue1: "+colValue1+"  colValue2: "+colValue2+" result="+result);
				if(result==1){
					swapNode(trObj[j],trObj[j+1]);
				}
			}
		}
	}

	function descSort(stable,index,type){
		var mytable = document.getElementById(stable);
		var trObj = mytable.rows;

		for(var i=1;i<trObj.length-1;i++){
			
			for(var j=1;j<trObj.length-1;j++){
				var colValue1 = trObj[j].cells[index].innerText;
				var colValue2 = trObj[j+1].cells[index].innerText;

				var result = compare(colValue1,colValue2,type);

				//alert("___colValue1: "+colValue1+"  colValue2: "+colValue2+" result="+result);
				if(result==-1){
					swapNode(trObj[j],trObj[j+1]);
				}
			}
		}
	}

	function sortTable(stable,index,type){
		var tag = index;
		if(mytable.sortCol == index){
			descSort(stable,index,type);
			tag = undefined;
		}else{
			ascSort(stable,index,type);
		}
		mytable.sortCol = tag;
	}
 </script>

 <BODY>
	<br>
	<br>
	<center>
		<table id="mytable" border="1" width="88%">
			<thead>
				<tr style="cursor:pointer">
					<th onClick="sortTable('mytable',0,'string')">姓名</th>
					<th onClick="sortTable('mytable',1,'int')">年龄</th>
					<th onClick="sortTable('mytable',2,'string')">身高</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<td>a</td>
					<td>3</td>
					<td>吧</td>
				</tr>
				<tr>
					<td>b</td>
					<td>8</td>
					<td>啊</td>
				</tr>
				<tr>
					<td>c</td>
					<td>1</td>
					<td>张</td>
				</tr>
				<tr>
					<td>c</td>
					<td>65</td>
					<td>刘</td>
				</tr>
			</tbody>
		</table>
		<br>


	</center>
  
 </BODY>
</HTML>

分享到:
评论

相关推荐

    jquery实现表格排序

    ### jQuery 实现表格排序 #### 知识点一:jQuery表格排序插件介绍 在Web开发中,数据展示经常需要通过表格的形式呈现给用户,并且为了方便用户查找所需信息,通常会提供排序功能。传统的表格排序往往需要后端的...

    jQuery Table表格排序显示代码.zip

    本资源“jQuery Table表格排序显示代码.zip”聚焦于利用jQuery实现动态表格排序的功能,这对于数据展示和用户交互至关重要。下面将详细阐述相关知识点。 1. **jQuery基础**:首先,理解jQuery的基础是至关重要的。...

    易语言高级表格排序示例.e

    易语言高级表格排序示例,程序模仿易语言例程里面的高级列表框排序写成.

    JavaScript实现表格排序

    而JavaScript实现的表格排序功能则能够帮助用户更方便地管理和理解这些数据。这篇我们将深入探讨如何使用JavaScript实现表格排序,包括对数字、日期和汉字的排序。 首先,我们需要理解HTML表格的基本结构,通常由`...

    android 表格 排序 源码

    本示例项目“android 表格 排序 源码”提供了实现Android表格排序功能的完整源码,用户可以点击表头对表格中的数据进行升序或降序排序。下面我们将详细讲解这个功能实现的关键知识点。 1. **使用GridView或...

    html表格排序资源

    jquery-tablesort则是一个独立于jQuery的表格排序库,它提供了类似的功能,但不依赖于jQuery。这意味着如果你的项目不使用jQuery或者希望减少依赖,这个库是个不错的选择。jquery-tablesort同样支持多种数据类型的...

    javaScript对表格排序

    总结起来,这个JavaScript表格排序示例展示了如何通过监听表头点击事件,使用纯JavaScript实现表格数据的动态排序。它依赖于HTML表格结构,通过JavaScript操作DOM节点进行数据比较和位置交换。在实际项目中,可以...

    jquery的表格排序插件

    表格排序对于数据展示和分析尤其重要,特别是在数据量较大的情况下。 在描述中提到的“博文链接:https://liu346435400.iteye.com/blog/1130963”,这可能是一个博客文章,详细介绍了如何使用特定的jQuery表格排序...

    表格排序和表头浮动

    "表格排序和表头浮动"就是一个这样的功能组合,它使得用户能更方便地浏览和理解大量数据。 表格排序是指用户可以通过点击表格列头来按该列的数据进行升序或降序排列。这个功能对于处理大量结构化数据非常有用,比如...

    Blue Table,Js表格排序插件

    **Blue Table:JavaScript表格排序插件** 在网页开发中,数据展示经常需要用到表格,而对表格数据进行排序是用户交互中的常见需求。Blue Table是一款基于JavaScript的表格排序插件,它能够帮助开发者轻松实现表格...

    一个表格排序程序

    源码是软件开发的基础,通过查看和理解源码,开发者可以学习到如何用JavaScript实现表格排序功能,包括数据处理、事件监听、DOM操作等技术。 “工具”标签则表明这是一个开发者使用的辅助工具,可以帮助他们在自己...

    Jquery表格排序(支持中文)

    表格排序通常用于显示大量结构化数据,并允许用户根据需要对数据进行升序或降序排列。在中文环境下,排序需要考虑中文字符的Unicode编码顺序,确保排序的准确性。 ### 3. 实现思路 - 首先,我们需要一个包含表格...

    表格排序插件

    《表格排序插件详解及其应用》 在网页开发中,数据展示往往离不开表格。而当表格数据量较大或者需要频繁进行动态排序时,一个高效、易用的表格排序插件就显得尤为重要。本文将深入探讨“表格排序插件”,特别是以...

    仿excle表格排序效果

    Excel因其强大的数据处理和可视化能力而备受青睐,因此在网页或应用程序中模拟其某些特性,如表格排序,能极大地提升用户体验。在这个"仿excle表格排序效果"的项目中,我们将探讨如何实现点击表头进行按列排序的功能...

    javascript带箭头的表格排序实例

    在JavaScript编程中,实现带箭头的表格排序是一种常见的需求,尤其在数据展示和交互式网页设计中。本文将深入探讨如何使用JavaScript实现这一功能,包括理解基础的HTML表格结构、CSS样式设置以及JavaScript事件处理...

    漂亮的html 表格排序实现

    要实现“漂亮的html表格排序实现”,我们需要借助JavaScript或者jQuery等库来增强HTML表格的功能,让数据可以按照用户的需求进行升序或降序排列。下面将详细介绍这个过程中的关键知识点。 1. HTML基础 首先,我们...

    JQuery插件实现表格排序

    在描述中提到了一个博客链接,虽然具体内容没有给出,但可以推测博主分享了一篇关于如何使用jQuery创建表格排序功能的文章。在实际应用中,这样的插件可能包括以下关键知识点: 1. **jQuery基础**:了解jQuery的...

    Table表格排序显示jQuery代码

    "Table表格排序显示jQuery代码"是一个实用的工具,它允许用户通过简单的点击表头来实现表格数据的多维度排序,包括分类排序、数字大小排序以及英文排序等。这个功能极大地提升了用户体验,使得大量数据的浏览和分析...

    使用jqueryUI实现表格排序功能

    而“使用jQuery UI实现表格排序功能”是网页交互设计中的常见需求,尤其对于数据展示丰富的网页,如报表、数据分析页面等。jQuery UI 的 tablesorter 插件可以方便地实现这一功能,让表格数据可以根据用户的需求进行...

Global site tag (gtag.js) - Google Analytics