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 相关文章推荐
JavaScript语言核心数据类型和变量使用介绍
Aug 23 Javascript
js使用数组判断提交数据是否存在相同数据
Nov 27 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
Oct 05 Javascript
jQuery继承extend用法详解
Oct 10 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 Javascript
Html5+jQuery+CSS制作相册小记录
Dec 30 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
Feb 09 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
Jun 27 Javascript
将RGB值转换为灰度值的简单算法
Oct 09 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
Nov 20 Javascript
原生js实现滑块区间组件
Jan 20 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仿ZOL分页类代码
2008/10/02 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
php连接mysql数据库
2017/03/21 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
python cumsum函数的具体使用
2019/07/29 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
环境工程大学生个人的自我评价
2013/10/08 职场文书
书法培训心得体会
2014/01/05 职场文书
给老师的道歉信
2014/01/11 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
OpenCV-Python实现轮廓拟合
2021/06/08 Python
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL
Python制作动态字符画的源码
2021/08/04 Python