使用JQuery对包含HTML内容的HTML列表进行排序
是否可以将列表从较低的数字排序到较大的数字,保留每个li内容?
- 39
- 34
- 38
- 35
- 33
我需要它自动命令,因为列表将动态创建。
- 33
- 34
- 35
- 38
- 39
谢谢你的帮助!
编辑:
通过评论中的@Blender建议,我在下面的post中使用了代码,它对我来说很好。
在jQuery中订购
- /
- 使用
span
标签(如39
包裹这些数字 - 更新的分拣机function如下,
- 的最简单方法是什么?
试试下面的代码,
$(function() { $('button').click(function() { var liContents = []; $('ul li').each(function() { liContents.push($(this).html()); }); liContents.sort(liSorter); $('ul li').each(function() { $(this).html(liContents.pop()); }); }); }); /* Below function is kind of a workaround for the listed HTMl you need to update it if you have proper HTML. */ function liSorter(a, b) { return (parseInt(b) - parseInt(a)); }
DEMO
编辑:更新您的标记以获得更好的代码,
码:
function numOrdDesc(a, b) { var aTxt = parseInt($(a).find('.num').text(), 10); var bTxt = parseInt($(b).find('.num').text(), 10); return (bTxt - aTxt); }
DEMO
你的function应该是这样的。
function numOrdDesc(a, b) { var aTxt = parseInt($(a)[0].innerText, 10); var bTxt = parseInt($(b)[0].innerText, 10); return (bTxt - aTxt); }
DEMO