ul li列表排序
2015-09-01 11:18
183 查看
有这样的需求,就是对 li 列表进行排序,刚开始觉得木有什么头绪,就想起以前好像Array.prototype.sort.call可以这样做,可以实现对象的排序,比如
那么对于一个dom列表,怎么做呢。下面有一个JS原生版本的。
DOM结构
JS代码:
调用
效果:
排序前:
排序后:
那么对于一个dom列表,怎么做呢。下面有一个JS原生版本的。
DOM结构
<ul class="datalist"> <li class="item"> <span class="item-id">1</span> <span class="item-name">AA_90</span> <span class="item-count">90</span> </li> <li class="item"> <span class="item-id">2</span> <span class="item-name">AA_52</span> <span class="item-count">52</span> </li> <li class="item"> <span class="item-id">3</span> <span class="item-name">AA_57</span> <span class="item-count">57</span> </li> <li class="item"> <span class="item-id">4</span> <span class="item-name">AA_36</span> <span class="item-count">36</span> </li> </ul>
JS代码:
/** * 对list排序 * @param {boolean} flag [正逆序标记] * @param {JQ dom} $domlist [参与排序的列表] * @return {JQ dom} [返回重新排序过的列表] */ var sortDom = function(flag,$domlist){ var $item = $domlist.find('.item'); var $newList = Array.prototype.sort.call($item,function(a,b){ return flag ? ($(a).find('.item-count').html()-0) - ($(b).find('.item-count').html()-0) : ($(b).find('.item-count').html()-0) - ($(a).find('.item-count').html()-0) }); return $newList; }
调用
$('#sort-btn').click(function(){ var $domlist = $('.datalist'); var $result = sortDom(true,$domlist); $('.datalist').html($result); });
效果:
排序前:
排序后:
相关文章推荐
- TelephoneBook-method包-TelephoneMain类
- CListCtrl类中的数据自动保存到txt或excel中的实现代码。
- git 查看远程仓库
- 树状数组(BIT)
- POJ 3694 Network
- linux shell 编程 echo 语句 颜色
- Java(02)-JDK 5.0 新特性
- 很爱很爱,是,已经走成一个人后的突然缺失;而不是两个人想要走成一个人的幻觉
- IIS关于设置
- CefSharp 与 js 相互调用
- 数据库-触发器(定义、作用、使用方法、new/old虚拟表)
- [收集]字符串的全排列和组合
- 7种延迟加载javascript方法(转)
- 线程的分离状态
- GCD 概要
- web app
- Integer & int & == & equals浅谈
- 三大范式详解
- 安装auto-fu.zsh让命令输入自动补全
- java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource