在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' });
尝试这个:
var elems = $('.alphalist li').detach().sort(function (a, b) { return ($(a).text() < $(b).text() ? -1 : $(a).text() > $(b).text() ? 1 : 0); }); $('.alphalist').append(elems);