jQuery实现对无序列表的排序功能(附demo源码下载)


Posted in Javascript onJune 25, 2016

本文实例讲述了jQuery实现对无序列表的排序功能。分享给大家供大家参考,具体如下:

利用jQuery对无序列表排序的原理是:获取到无序列表中的所有列表项,并转成数组形式,使用JavaScript函数对其进行排序后再次输出。其中使用到的jQuery函数有ready()、get()、text()、each()、append()和JavaScript函数sort()。

1.jQuery函数介绍

(1)jQuery函数get()--获取匹配元素集合

该函数取得所有匹配元素的一种向后兼容的方式(不同于jQuery对象,实际上是元素数组)。其语法形式如下:

object.get()

注:如果你想要直接操作DOM对象而不是jQuery对象,这个函数非常有用。

(2)jQuery函数text()--获取和设置元素内容

该函数获取和设置匹配元素的文本内容。其语法形式如下:

object.text([val|fn])

注:val和fn参数可选。val是设置元素的文本内容值;fn(index,text)函数返回一个字符串,接受两个参数,index为元素在集合中的索引位置,text为原先的text值。

(3)jQuery函数append()--向元素追加内容

该函数向每个匹配的元素内部追加内容。其语法形式如下:

object.append(content|fn)

注:这个操作与对指定的元素执行appendChild方法并将它们添加到文档中的情况类似。content参数表示追加的内容;fn(index,html)返回一个HTML字符串,用于追加到每一个匹配元素内部,接受两个参数,index参数为对象在这个集合中的索引值,html参数为这个对象原先的html值。

2.JavaScript函数介绍

JavaScript函数sort()--元素排序,用于对数组元素进行排序。其语法形式如下:

arrayObject.sort([sortby])

注:sortby可选,规定排列顺序,必须是函数。返回值为排序后的数组本身。如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序。说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:若a小于b,在排序后的数组中a应该出现在b之前,则返回一个小于0的值。若a等于b,则返回0。若a大于b,则返回一个大于0的值。

3.功能实现

实现无序列表项排序功能的步骤如下。

(1)获取所有的列表项,并将其装入数组。

(2)对数组对象进行排序。

(3)将排好序的数组重新填充到无序列表中。

首先,把jQuery库引入进来:

<script language="JavaScript" src="jquery-1.7.2.min.js"></script>

然后,添加如下排序功能代码:

<script language="JavaScript" type="text/JavaScript">
 $(document).ready(function(){
  var items = $(".orderobj li").get(); //获取所有待排序li装入数组items
  items.sort(function(a,b) //调用JavaScript内置函数sort
  {
    var elementone = $(a).text();
    var elementtwo = $(b).text();
    if(elementone < elementtwo) return -1;
    if(elementone > elementtwo) return 1;
   return 0;
 });
 var ul = $(".orderobj");
 $.each(items,function(i,li)
 //通过遍历每一个数组元素,填充无序列表
 {
   ul.append(li);
 });
 });
</script>

以上代码通过数组排序并重新填充无序列表使得列表项有序。具体效果如图:

jQuery实现对无序列表的排序功能(附demo源码下载)

完整实例代码点击此处本站下载。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
js动态修改整个页面样式达到换肤效果
May 23 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
Aug 21 Javascript
jquery自定义右键菜单、全选、不连续选择
Mar 01 Javascript
jquery获取form表单input元素值的简单实例
May 30 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
Aug 25 Javascript
jQuery Ajax全解析
Feb 13 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
Apr 13 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
Aug 18 Javascript
redux中间件之redux-thunk的具体使用
Apr 17 Javascript
当vue路由变化时,改变导航栏的样式方法
Aug 22 Javascript
微信小程序image图片加载完成监听
Aug 31 Javascript
JavaScript实现HTML导航栏下拉菜单
Nov 25 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
Jun 25 #Javascript
js操作XML文件的实现方法兼容IE与FireFox
Jun 25 #Javascript
js将滚动条滚动到指定位置的简单实现方法
Jun 25 #Javascript
jQuery图片渐变特效的简单实现
Jun 25 #Javascript
js删除局部变量的实现方法
Jun 25 #Javascript
浅谈JQuery+ajax+jsonp 跨域访问
Jun 25 #Javascript
javascript 广告移动特效的实现代码
Jun 25 #Javascript
You might like
用PHP实现ODBC数据分页显示一例
2006/10/09 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
JS实现日期加减的方法
2013/11/29 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
window下eclipse安装python插件教程
2017/04/24 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
JBL英国官网:JBL UK
2018/07/04 全球购物
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
求职信模板怎么做
2014/01/26 职场文书
目标责任书范文
2014/04/14 职场文书
低碳环保演讲稿
2014/08/28 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
社区重阳节活动总结
2015/03/24 职场文书
员工辞职信范文大全
2015/05/12 职场文书
学习十八大的感悟
2015/08/11 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
图文详解nginx日志切割的实现
2022/01/18 Servers