在jQuery中订购<UL> / <OL>最简单的方法是什么?

我正在寻找一些示例代码,将按字母顺序对HTML列表中的列表项进行sorting。 谁能帮忙?

以下是供人们使用的示例列表:

<ul class="alphaList"> <li>apples</li> <li>cats</li> <li>bears</li> </ul> 
 var items = $('.alphaList > li').get(); items.sort(function(a,b){ var keyA = $(a).text(); var keyB = $(b).text(); if (keyA < keyB) return -1; if (keyA > keyB) return 1; return 0; }); var ul = $('.alphaList'); $.each(items, function(i, li){ ul.append(li); /* This removes li from the old spot and moves it */ }); 

对于未来的谷歌,我发现这个插件非常有用。 它可以select为非拉丁语言定义字符顺序。

旧版本(jQuery依赖)

 $('.submenu > li').tsort({ charOrder: 'abcçdefgğhıijklmnoöprsştuüvyz' }); 

对于只有英文的字符,不需要任何选项来定义

 $('.submenu > li').tsort(); 

当前版本(独立于jQuery)(2016年3月29日)

tinysort的当前版本现在独立于jQuery。 纯粹的JavaScript。 我更新了jsfiddle新版本的用法。

 tinysort('.submenu > li', { charOrder: 'abcçdefgğhıijklmnoöprsştuüvyz' }); 

演示 http://jsfiddle.net/ergec/EkScy/

网站 http://tinysort.sjeiti.com/

尝试这个:

 var elems = $('.alphalist li').detach().sort(function (a, b) { return ($(a).text() < $(b).text() ? -1 : $(a).text() > $(b).text() ? 1 : 0); }); $('.alphalist').append(elems);