前言
这个小练手旨在帮助刚上手学习JavaScript的同学练习最基本的Js知识,大神勿喷哈,由于这个是非常简易的计算器,可以完成的功能有加减乘除和AC(清屏),DEL(退格)等基本运算,所以代码也不复杂,我会先放出代码,然后再讲解我的思路,非常简单,只要你按照我的思路走,15分钟不到我保证你也可以敲出同样的代码,当然主要还是希望可以为入门的同学提供一种解决问题的思路,各位看完后可以自己动手敲一遍哈。
HTML代码部分
HTML这部分非常简单,没什么多说的,整个框架我利用
搭建的,需要注意的是
实际上表格的排序就是把要排序的那列(或行),的值存在一个数组中,然后对数组用比较函数进行排序,然后再对表格内容进行替换.
思想:考虑代码的简单易用及可重复;
现在举例说明,以列排序为例;
1)表格的规范:
因为排序是在同类型之间进行的,比如:字符串,数字,日期;然而,用来触发排序事件的表头和该列数据的类型可能不同,所以在生成表格的时候最好将表头和下面的内容分开.以免在取值的时候还要对表头进行排除.所以可以采取下面的方法:表头放在thead里面,数据放在tbody里面(thead,tbody,tfoot 这三个是表格自身就拥有的,不是自己创造的;)这样就更直观了.当点击thead里面tr里的td后,触发排序事件,将tbody里的某列进行排序.
2)统一排序函数.
为了代码的简易,整个表格排序用一个函数,不同的列排序只是传递的参数不同;比如,第一列传1, 第二列则传2;但因为每列的数据类型可能不同,所以要进行判断.而且要将数据转换成可比较的类型.甚至可以通过传的参数不同获得不同的比较函数;
3)将要排序的列获取到,放在数组中;
为了程序的简单,可以直接把tr放在数组中,然后在比较函数中进行取值.将tr放在数组中时不会从表格中删除tr元素.因为仅仅存储了指针,并不是实际的元素.
4)排序
对数组里数据的类型进行判断,然后根据类型,进行转换,转成可转换的类型;然后用自己写的比较函数进行比较;得到排好序的数组;
5)按已排序的数组生成新的表格;
6)创建文档碎片,将新表格绑定在碎片一;
7)将文档碎片绑定在tbody上,从而实现了在用户看来刷新了表格的目的;
举个详细的例子:
一个2*3的表格;一列里面放的是名字,一列里面是图片;直接对图片肯定不能排序,所以要在图片的td里面自定义一个值.如:加一个value属性;