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 相关文章推荐
jQuery 打造动态渐变按钮 详细图文教程
Apr 25 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
基于jQuery日历插件制作日历
Mar 11 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
Jun 08 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
Dec 14 Javascript
JS多文件上传的实例代码
Jan 11 Javascript
jQuery简单实现遍历单选框的方法
Mar 06 Javascript
JS和canvas实现俄罗斯方块
Mar 14 Javascript
JS正则替换去空格的方法
Mar 24 Javascript
vue 纯js监听滚动条到底部的实例讲解
Sep 03 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
Nov 27 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
Mar 03 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
递归列出所有文件和目录
2006/10/09 PHP
打造计数器DIY三步曲(中)
2006/10/09 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
在网页中控制wmplayer播放器
2006/07/01 Javascript
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
python中装饰器级连的使用方法示例
2017/09/29 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
简单了解python PEP的一些知识
2019/07/13 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
python如何判断IP地址合法性
2020/04/05 Python
Django-imagekit的使用详解
2020/07/06 Python
python Xpath语法的使用
2020/11/26 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
周鸿祎:教你写创业计划书
2013/12/30 职场文书
幼儿园教师备课制度
2014/01/12 职场文书
2014年行政工作总结
2014/11/19 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js
使用Redis实现分布式锁的方法
2022/06/16 Redis
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技