转:备忘——javascript操作表格排序

构建自定义日历备忘录控件 在现代IT环境中,时间管理和任务跟踪是提高个人和团队工作效率的关键。日历备忘录作为一种集成到计算机桌面或移动设备中的工具,它能够有效地帮助用户管理和规划他们的日常工作、会议和重要日期。本章节将介绍日历备忘录的基本功能,包括事件创建、提醒设置、日历视图切换和事件管理等。// 创建一个自定义事件,比如初始化日历// 进一步的初始化逻辑...});// 根据年份和月份创建日历视图的逻辑...// 返回创建好的日历元素在这段代码中,我们监听了。 阅读详情

原帖出自:http://dennis-zane.javaeye.com/blog/58864 

//类型转换器,将列的字段类型转换为可以排序的类型:String,int,float
            function convert(sValue, sDataType) {
                switch(sDataType) {
                    case "int":
                        return parseInt(sValue);
                    case "float":
                        return parseFloat(sValue);
                    case "date":
                        return new Date(Date.parse(sValue));
                    default:
                        return sValue.toString();
               
                }
            }
           
            //排序函数产生器,iCol表示列索引,sDataType表示该列的数据类型
            function generateCompareTRs(iCol, sDataType) {
       
                return  function compareTRs(oTR1, oTR2) {
                            var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
                            var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
       
                            if (vValue1 < vValue2) {
                                return -1;
                            } else if (vValue1 > vValue2) {
                                return 1;
                            } else {
                                return 0;
                            }
                        };
            }
           
            //排序方法
            function sortTable(sTableID, iCol, sDataType) {
                var oTable = document.getElementById(sTableID);
                var oTBody = oTable.tBodies[0];
                var colDataRows = oTBody.rows;
                var aTRs = new Array;
               
                //将所有列放入数组
                for (var i=0; i < colDataRows.length; i++) {
                    aTRs[i] = colDataRows[i];
                }
                
                //判断最后一次排序的列是否与现在要进行排序的列相同,是的话,直接使用reverse()逆序
                if (oTable.sortCol == iCol) {
                    aTRs.reverse();
                } else {
                    //使用数组的sort方法,传进排序函数
                    aTRs.sort(generateCompareTRs(iCol, sDataType));
                }
       
                var oFragment = document.createDocumentFragment();
                for (var i=0; i < aTRs.length; i++) {
                    oFragment.appendChild(aTRs[i]);
                }
      
                oTBody.appendChild(oFragment);
                //记录最后一次排序的列索引
                oTable.sortCol = iCol;
            }

完整例子:
<html>
    <head>
    <title>Table Sort Example</title>
        <script type="text/javascript">
           
            //转换器,将列的字段类型转换为可以排序的类型:String,int,float
            function convert(sValue, sDataType) {
                switch(sDataType) {
                    case "int":
                        return parseInt(sValue);
                    case "float":
                        return parseFloat(sValue);
                    case "date":
                        return new Date(Date.parse(sValue));
                    default:
                        return sValue.toString();
               
                }
            }
           
            //排序函数产生器,iCol表示列索引,sDataType表示该列的数据类型
            function generateCompareTRs(iCol, sDataType) {
       
                return  function compareTRs(oTR1, oTR2) {
                            var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
                            var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
       
                            if (vValue1 < vValue2) {
                                return -1;
                            } else if (vValue1 > vValue2) {
                                return 1;
                            } else {
                                return 0;
                            }
                        };
            }
           
            //排序方法
            function sortTable(sTableID, iCol, sDataType) {
                var oTable = document.getElementById(sTableID);
                var oTBody = oTable.tBodies[0];
                var colDataRows = oTBody.rows;
                var aTRs = new Array;
               
                //将所有列放入数组
                for (var i=0; i < colDataRows.length; i++) {
                    aTRs[i] = colDataRows[i];
                }
                
                //判断最后一次排序的列是否与现在要进行排序的列相同,是的话,直接使用reverse()逆序
                if (oTable.sortCol == iCol) {
                    aTRs.reverse();
                } else {
                    //使用数组的sort方法,传进排序函数
                    aTRs.sort(generateCompareTRs(iCol, sDataType));
                }
       
                var oFragment = document.createDocumentFragment();
                for (var i=0; i < aTRs.length; i++) {
                    oFragment.appendChild(aTRs[i]);
                }
      
                oTBody.appendChild(oFragment);
                //记录最后一次排序的列索引
                oTable.sortCol = iCol;
            }

        </script>
    </head>
    <body>
        <p>Click on the table header to sort in ascending order.</p>
        <table border="1" id="tblSort">
            <thead>
                <tr>
                    <th onclick="sortTable('tblSort', 0)"
                        style="cursor:pointer">Last Name</th>
                    <th onclick="sortTable('tblSort', 1)"
                        style="cursor:pointer">First Name</th>
                    <th onclick="sortTable('tblSort', 2, 'date')"
                        style="cursor:pointer">Birthday</th>
                    <th onclick="sortTable('tblSort', 3, 'int')"
                        style="cursor:pointer">Siblings</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Smith</td>
                    <td>John</td>
                    <td>7/12/1978</td>
                    <td>2</td>
                </tr>
                <tr>
                    <td>Johnson</td>
                    <td>Betty</td>
                    <td>10/15/1977</td>
                    <td>4</td>
                </tr>
                <tr>
                    <td>Henderson</td>
                    <td>Nathan</td>
                    <td>2/25/1949</td>
                    <td>1</td>
                </tr>
                <tr>
                    <td>Williams</td>
                    <td>James</td>
                    <td>7/8/1980</td>
                    <td>4</td>
                </tr>
                <tr>
                    <td>Gilliam</td>
                    <td>Michael</td>
                    <td>7/22/1949</td>
                    <td>1</td>
                </tr>
                <tr>
                    <td>Walker</td>
                    <td>Matthew</td>
                    <td>1/14/2000</td>
                    <td>3</td>
                </tr>
            </tbody>
        </table>       
    </body>
</html>

汽车OBD接口实战:如何用STM32读取CAN总线数据(附完整代码) 本文详细介绍了如何利用STM32微控制器通过汽车OBD接口读取CAN总线数据的完整实战方案。内容涵盖硬件连接(如OBD引脚定义与TJA1050收发器接线)、STM32的CAN外设初始化与滤波器配置,并深入解析OBD-II诊断协议,演示了如何请求和解析发动机转速、车速等关键数据。文末提供了构建稳定数据读取系统的代码框架与错误处理建议,为嵌入式开发者和汽车电子爱好者提供了从零到一的实践指南。 阅读详情

相关推荐

deepseek本地部署及应用部署指南

如果你找到的日志是[send] via NET/IB/0,则表示网络通信是通过IB网络的,但是没有开启GDRDMA技术,则会有大致5%的性能损耗(网传,未实测)。新增的环境变量配置,主要用于启用IB网络通信,而非使用以太网进行通信,详细的每一个参数的具体含义,可以在英伟达NCCL的官方网站上找到说明。下一步,我会对已经完成部署的模型进行压测,来探索系统的性能极限在哪里,以及如何在生产环境中何如进行进一步的性能优化,期待你的关注。

weixin_39797121的博客 2624

如何在JavaScript中按日期值对数组进行排序

Say you have an array of objects like this, which contains a set of date objects: 假设您有一个像这样的对象数组,其中包含一组日期对象 : const activities = [ { title: 'Hiking', date: new Date('2019-06-28') }, { title: 'Sh...

cuk0051的博客 1321

【STM32-DSP库的使用】基于Keil5 + STM32CubeMX + CMSIS-DSP 手动添加、库添加方式

CMSIS-DSP库在工程中应用遇到的所有问题进行归纳终结

洋洋的博客 1万+

javascript操作表格排序

 javascript操作表格排序 来源:misc.blogjava.net   表格排序,一般的处理方法是传递排序的字段到后台进行重新查询并排序,javascript也可以做

楓雨人生 1204

某头部能源集团“数据治理”到“数智应用”跃迁案例剖析

本次案例能源企业实现了从“数据可用”到“指标驱动”再到“智能决策”的全链条升级,标志着集团在数字化、智能化治理能力上的系统跃升,构建起面向未来的数智管理新范式。

a958014226的博客 1258

别再死记硬背窗函数公式了!用MATLAB实战汉宁窗FIR滤波器,从频谱图看懂‘主瓣’和‘旁瓣’

本文通过MATLAB实战演示汉宁窗FIR滤波器的设计过程,帮助读者从频谱图直观理解主瓣与旁瓣的特性。文章详细对比了矩形窗与汉宁窗的频谱差异,并提供了高通滤波器设计的完整代码示例,适用于数字信号处理学习和工程应用。

weixin_30555125的博客 490

js表格的排序操作

<br />谢谢:http://dennis-zane.javaeye.com/blog/58864<br />备忘——javascript操作表格排序表格排序,一般的处理方法是传递排序的字段到后台进行重新查询并排序,javascript也可以做到简单的表格排序,备忘代码:<br />           //类型转换器,将列的字段类型转换为可以排序的类型:String,int,float<br />            function convert(sValue, sDataType) {<br /

LEE_ZCF 1462

CloudCompare横截面工具实战:从点云切片到轮廓提取的完整流程

本文详细介绍了CloudCompare软件中Cross Section工具的核心功能与实战流程。从交互式裁剪框的精准操控,到包络线提取的参数设置与优化,再到内部轮廓提取及批量处理技巧,完整解析了如何从三维点云中高效提取建筑立面、隧道断面等关键轮廓信息,是点云数据处理与分析的实用指南。

weixin_29290963的博客 284

备忘——javascript操作表格排序

表格排序,一般的处理方法是传递排序的字段到后台进行重新查询并排序,javascript也可以做到简单的表格排序,备忘代码:           //类型转换器,将列的字段类型转换为可以排序的类型:String,int,float            function convert(sValue, sDataType) {                switch(sDataType) {  ...

庄周梦蝶 171

【解决问题】‘vue‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

【解决问题】'vue' 不是内部或外部命令,也不是可运行的程序或批处理文件。

weixin_44566194的博客 4万+

Far planner 代码系列(35)动态障碍物预处理_激光雷达部分

主要讲解动态障碍物在激光雷达部分的剔除机制

博客 1057

jquery实现表格删除一行后编号重新排序

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-...

qq_41294224的博客 2960

静态时序分析—门控时钟检查(clock gating check)

clock gating check的条件与类型

m0_61544122的博客 9606

js表格初学

《JavaScript权威指南第六版》书中只提及表单,但未提及表格,尽管实际开发中表格可能已经很少使用到,但在学习过程中见到相关的东西,还是记录下来备忘。 1.表格和表单 表格用于布局,一般用于存放数据; 表单用于传输数据;、 一般而言,表格中可以包含表单,表单中也可以包含表格。 2. 表格的使用 2.1 表格的创建 <table border = "1" > <thead&...

蜡笔小达新的博客 1028

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JS表格排序资料

http://www.iteye.com/topic/103272 http://www.blueidea.com/tech/web/2003/889.asp 近期学习计划 | PL/SQL学习笔记(二) 2007-03-10 备忘——javascript操作表格排序 表格排序,一般的处理方法是传递排序的字段到后台进行重新查询并排序,javascript也可以做到简单的表格排序,备忘代...

iteye_14238的博客 119

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

layui表格点击排序按钮后,表格绑定事件失效解决方法

layui表格点击排序按钮后,表格绑定事件失效解决方法

wangchaoqi1985的博客 1240

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

handsontable 仿excel表格插件备忘

先贴一个handsontable官网链接点击打开链接 这款插件的最大优点就是把excel从本地搬到了web上,而且操作与excel基本一致,使用者不需要重新学习,非常符合文员的操作习惯,先简单介绍下操作步骤: 1.初始化table /*表格初始化*/ var container = document.getElementById('你的表格id'); var hot = new Handso

CrowBlock8192 2106

零依赖每月工作计划备忘录:高效管理你的每一天

本文介绍了一款纯前端开发的每月工作计划备忘录工具,具有零依赖、全离线使用的特点。该工具提供直观的月度网格视图(31天×3时段),支持任务增删改、优先级设置、完成状态标记等核心功能。特色功能包括拖拽排序、Excel/CSV导入导出、多主题切换等,采用本地存储确保数据安全。文章详细展示了桌面端和移动端的界面效果,并解析了核心代码实现,包括任务数据结构设计、本地存储机制、拖拽功能和响应式布局等关键技术点。该工具适合个人和团队进行高效任务管理,无需后端支持,保护用户隐私数据。

白泽的博客 1672

对Table进行排序 (可指定排序方式)

在日常的WEB开发中,对表格的排序经常会用到,于是在网上找了些资料,然后自己下来研究了下,做了一些整理,现在将他贴出来,一来备忘,二来可以帮助其他需要的人。   需要注意的地方: 关于table中按行按列排序的方法: 1. 取出每一行作为排序的单元,结果即为完整的正确的排序。 2. 每一行中有一个关键字用于排序的标准 2.1 每一个关键字都有类型的区别,如string, int, date,...

横行青海夜带刀 2157

jquery操作table备忘

效果如下: 实现ID自增长: 排序/编号 分类名称 操作 JS实现: /** * 添加礼物类别输入框 */ function addGiftTypeInput(){ //得到最大的排序编号 var maxSortId = 0; $("#giftTypeList").find("tr

nano-dhh 523

js,jquery备忘录

1.var s = str.charCodeAt();转ASCII码 2.String.fromCharCode(65);转字母 3.es6 ... (扩展运算符),将一个数组转化成由逗号分割的队列。 如:arr = [1,2,3] ...arr => 1,2,3; 当你需要找一个数组中的最小值的时候便可以Math.min(...arr); 4.arr.reduce...

de3597的博客 344

JqGrid相关操作备忘 方法列表

1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id); 3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGr

nuliPerfect的博客 1616

[备忘][fastadmin]列表以及表格属性一览,可根据这些属性按需配置列表功能

//可根据这些属性按需配置列表功能 例如: 关闭列表快速搜索功能 在该代码中找到“快速搜索”一行代码,复制这行代码到你的列表js中配置进去即可。 如图: //参考代码:require-table.js define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table', 'bootstrap-table-lang', 'bootstrap-table-export', 'bootstrap-ta.

qq_15941409的博客 2743

Angularjs ngTable使用备忘

项目中用到angularjs的表格ng-table,功能相当强大,像搜索、排序、checkbox、分页、每页表格显示数目等都有。API,demo什么的也只能参考官网了。这里做个备忘,哪天肯定还会用到。 HTML: <!DOCTYPE html> <html> <meta charset="utf-8"/> <head> &lt...

weixin_34266504的博客 85
上一篇: 关于DLL函数名导出名字命名规则的转帖
下一篇: 被叫(callee)怎么使用applicatemap功能
yscdaxian
博客等级 码龄19年 3粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值