`
zwt2001267
  • 浏览: 446842 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js 对table表格排序

阅读更多
对于table表格排序,是开发中很长用到得技术。今天把客户端排序完善了一下,它兼容数字、字符、日期、汉字、百分数等排序功能。

如下

对于数字类型列:

	整型onclick=sortTable('tableID',1,'int');

	浮点型onclick=sortTable('tableID',1,'int');

对于日期型列:

	onclick=sortTable('tableID',1,'date');

对于字符串型列:

	如:onclick=sortTable('tableID',1);

对于百分数的列(如:36%):

	如:sortTable('tableID',5,'float',1);



// 对table表格排序的处理TableSort.js 文件代码如下:

//ie和FireFox的处理

function ieOrFireFox(obj)

{

    if(obj.textContent != null)

    {

        return obj.textContent;

    }

    else

    {

        var s = obj.innerText;

        return s.substring(0,s.length);

     }

}

//对table排序。

//参数 ---tableId:表的id,iCol:列索引;dataType:iCol对应的列排序显示数据的类型,removeRight:排序时去掉列的右边的字符个数

function sortTable(tableId,iCol,dataType,removeRight)

{

    var table = document.getElementById(tableId);

    //给排序列标题改变颜色////////////////////

    var thead = table.childNodes[0];

    var tr = thead.childNodes[0];

    var thNew = tr.childNodes[iCol];

    if(table.sortCol != null)

    {

        var thOld = tr.childNodes[table.sortCol];

        thOld.style.color="Black"

    }

    thNew.style.color="Blue"

    ///////////////////////////////////////////

    var tbody = table.tBodies[0];

    var colRows = tbody.rows;

    var aTrs = new Array;//定义数组

    //将得到的列放入数组,备用

    for(var i = 0;i<colRows.length;i++)

    {

        aTrs[i] = colRows[i];

    }

    //判断上一次排列和现在需要排列的是否同一个

    if(table.sortCol == iCol)

    {

        aTrs.reverse();

    }

    else

    {   //如果不是同一列,使用sort方法传进排序函数

        aTrs.sort(compareEle(iCol,dataType,removeRight));

    }

    var oFragment = document.createDocumentFragment();

    for(var i =0;i<aTrs.length;i++)

    {

        oFragment.appendChild(aTrs[i]);

    }

    tbody.appendChild(oFragment);

    table.sortCol = iCol;//记录最后一次排序的列索引

}

//排序函数,iCol:列索引,dataType:列数据类型

function compareEle(iCol,dataType,removeRight)

{

    return function(oTR1,oTR2)

    {

        var vValue1 = convert(ieOrFireFox(oTR1.cells[iCol]),dataType,removeRight);

        var vValue2 = convert(ieOrFireFox(oTR2.cells[iCol]),dataType,removeRight);

        if(typeof(vValue1)=='string')

        { // 汉字排序单独处理

            return vValue1.localeCompare(vValue2);

        }

        else

        {

            if(vValue1<vValue2)

            {

                return -1;

            }

            else if(vValue1>vValue2)

            {

                return 1;

            }

            else

            {

                return 0;

            }

         }

    };

}

//将列的类型转换成相应的可以排序的数据类型

function convert(sValue,dataType,removeRight)

{

    if(removeRight!=null)

    {

        var newLen = sValue.length - removeRight;

        sValue=sValue.substr(0,newLen);

    }

    switch(dataType)

    {

        case "int":

            return parseInt(sValue);

        case "float":

            return parseFloat(sValue);

        case "date":

            return new Date(Date.parse(sValue));

        default:

            return sValue.toString();

    }

}

 

分享到:
评论

相关推荐

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

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

    原生js table表格自动排序效果

    总的来说,原生js table表格自动排序效果的实现涉及到HTML结构的理解、JavaScript事件处理、数组排序算法的运用以及DOM操作。这是一个实用的功能,通过学习和理解这个例子,可以提升我们对前端开发中数据处理和交互...

    js对Table排序经典

    通过以上步骤,我们可以实现一个功能完备的JavaScript表格排序功能。实际开发中,还可以考虑对多列排序的支持、键盘导航以及国际化等问题,提升用户体验。在提供的"js对table的完整排序"文件中,应该包含了完整的...

    table表格排序效果源码下载

    而“table表格排序效果”则是提高用户体验的重要功能,允许用户根据某一列的数据对整个表格进行升序或降序排列。这个“table表格排序效果源码下载”提供了一个实现这一功能的代码示例。 排序功能对于处理大量数据至...

    实现table表格可按行拖拽,按列排序,并可以保存排序后的结果

    "实现table表格可按行拖拽,按列排序,并可以保存排序后的结果"是一个常见的需求,尤其适用于数据展示和管理的场景。这里我们将详细探讨如何利用jQuery、jQuery.tablesorter和jQuery.tablednd_0_5这三个JavaScript库...

    Table表格排序显示jQuery代码

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

    Blue Table,Js表格排序插件

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

    js 实现 table 行排序 TableOrder.rar

    表格排序通常涉及对数据的排序算法,如冒泡排序、选择排序、插入排序或快速排序等。JavaScript中的数组方法`sort()`可以接受一个比较函数作为参数,用于定义元素之间的排序顺序。 4. **用户交互**: 用户通过点击...

    javaScript对表格排序

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

    原生js table表格插件制作表格自动排序效果

    原生JS实现的table表格插件能够提供丰富的功能,比如表格数据的自动排序。这个插件可以帮助开发者为用户提供更加直观、高效的体验,无需依赖任何外部库,如jQuery或其他重型框架。下面将详细介绍如何利用原生...

    bootstrap-table.css 表格拖拽排序

    1. 引入Bootstrap、jQuery、TableDnD以及Bootstrap表格排序扩展的CSS和JS文件。 2. 创建一个基本的Bootstrap表格结构。 3. 使用JavaScript(可能是jQuery)来初始化表格,并设置`reorderRows`为`true`,以启用拖拽...

    jquery table 表格 排序

    本篇文章将深入探讨如何使用jQuery实现表格排序,以及与之相关的知识点。 首先,我们看到的`TableOrder('ordert',3,0,1)`函数是用于对表格进行排序的自定义函数。这个函数接受四个参数: 1. `ordert`:这是排序所...

    JavaScript实现表格排序

    这篇我们将深入探讨如何使用JavaScript实现表格排序,包括对数字、日期和汉字的排序。 首先,我们需要理解HTML表格的基本结构,通常由`&lt;table&gt;`、`&lt;tr&gt;`(行)、`&lt;th&gt;`(表头)和`&lt;td&gt;`(数据单元格)组成。为了...

    js拖拽Table表格列排序.rar

    本文将详细讲解如何实现JS拖拽Table表格列排序的功能,并结合提供的"js拖拽Table表格列排序.rar"文件进行解析。 首先,我们需要理解HTML中的Table结构。一个基本的HTML Table由`&lt;table&gt;`标签开始,内部包含`&lt;tr&gt;`...

    js实现漂亮的table表格

    "js实现漂亮的table表格"这个主题涉及到使用JavaScript和CSS来增强HTML表格的功能和外观,使其更具吸引力并提供更好的用户体验。下面我们将详细探讨这个主题中的关键知识点。 首先,HTML表格是网页上展示结构化数据...

    js 实现 table 行排序

    接下来,我们需要编写 JavaScript 函数 `sortTable(columnIndex)`,这个函数将根据传入的列索引对表格进行升序或降序排序。这里我们使用了冒泡排序算法,虽然效率较低,但对于小型数据集来说足够用了。 ```...

    js代码操作table排序功能

    通过以上步骤,我们就可以实现一个基本的JavaScript表格排序功能。这个功能不仅可以应用于静态HTML页面,还可以结合后端API动态获取和更新数据,提供更丰富的用户体验。在实际项目中,还可以进一步扩展,例如,添加...

    web开发js实现的表格排序功能

    web开发js实现的表格排序功能,web开发js实现的表格排序功能,web开发js实现的表格排序功能

    javaScript对表格自动排序

    下面我们将深入探讨如何使用JavaScript实现表格排序功能。 一、HTML表格基础 在HTML中,`&lt;table&gt;`元素用于创建表格,`&lt;tr&gt;`表示表格行,`&lt;th&gt;`表示表头单元格,`&lt;td&gt;`表示数据单元格。例如: ```html &lt;table id=...

Global site tag (gtag.js) - Google Analytics