JavaScript中按照字母排序列表的两种方法
2014-05-30 20:00
302 查看
写这篇博客的时候,是刚刚好我看到一道这样的字母列表排序,跟着里面有点小困惑,就上网搜了下,虽然没有比较好的解释,但lz我就自己看着整理下,跟着大家如果有什么问题或者发现哪里有问题的话,麻烦一定要帮我指正哦~~~~这是第一种方法:function sortkids(e){if(typeof e=="string") e=document.getElementById(e);var kids=[];for (var x=e.firstChild;x!=null;x=x.nextSibling)if(x.nodeType==1) kids.push(x);kids.sort(function (n,m){var s=n.firstChild.data; alert(s);var t=m.firstChild.data; alert(t);if(s<t) return -1;else if(s>t) return 1;else return 0;});for(var i=0;i<kids.length;i++) e.appendChild(kids[i]);}
<body> 测试列表 <ul id="list"> <li>one</li><li>two</li><li>three</li><li>four</li> </ul> <p><button onclick="sortkids('list')">click</button></p> </body>这个程序输出排序结果为:four one three two楼主我的困惑是sort()函数里面的排序 var s=n.firstChild.data; alert(s);var t=m.firstChild.data; alert(t);为什么是s和t是一样的呢?、
sort是js中数组Array的排序方法 sort 方法 返回一个元素已经进行了排序的 Array 对象。 arrayobj.sort(sortfunction) 参数 arrayObj 必选项。任意 Array 对象。 sortFunction 可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。 说明 sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。 如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一: 负值,如果所传递的第一个参数比第二个参数小。 零,如果两个参数相等。 正值,如果第一个参数比第二个参数大。 他首先将li对象放进数组,然后指定一个方法,告诉这个数组两个元素之间该怎么排序,具体的排序js引擎中已经定死了的,不用去关心了,只要在排序函数中,告诉Array,两个内容对象该怎么比较就可以了。
第二种方法:个人认为比较好理解些
<script type="text/javascript">/*** @param string ul**/function sortLis(ul){var u=document.getElementById(ul);var lis=u.getElementsByTagName('li');var tmp=[];for(var i=0;i<lis.length;i++){tmp.push(lis[i]);}tmp.sort(function(m,n){var s=m.firstChild.data;var e=n.firstChild.data;if(s>e){return 1}else if(s<e){return -1;}else{return 0;}});for(var i=0;i<tmp.length;i++){u.appendChild(tmp[i]);}}</script>
相关文章推荐
- 按照两种模式排序用户列表
- PHP实现对多维数组按照某个键值排序的两种解决方法
- jquery模拟字母顺序排序定位城市列表方法(bug改进)
- Java实现按照大小写字母顺序排序的方法
- PHP排序之二维数组的按照字母排序方法
- javascript 自己实现数字\字母和中文的混合排序方法 by FungLeo
- PHP实现对多维数组按照某个键值排序的两种解决方法
- 实现对多维数组按照某个键值排序的两种方法(array_multisort和array_sort)
- PHP排序之二维数组的按照字母排序方法
- python list列表排序的两种方法及实例讲解
- Android HashMap按照键值排序的两种方法
- Android数组列表按照字母排序
- php和mysql采用utf-8编码时实现按照一个文本字段的首字母的拼音顺序进行排序的方法
- Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法
- JavaScript实现对下拉列表值进行排序的方法
- JavaScript实现对下拉列表值进行排序的方法
- javascript select列表内容按字母倒序排序与按列表倒序排列
- java将汉字转成拼音并按照首字母排序的有效方法。
- 列表按照字母排序检索SideBar
- url参数用&拼接并且按照字母顺序排序方法