在 jQuery 中订购 <UL>/<OL> 的最简单方法是什么?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/304396/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What is the easiest way to order a <UL>/<OL> in jQuery?
提问by Eric Schoonover
I'm looking for some sample code that will sort the list items in an HTML list by alphabetical order. Can anyone help?
我正在寻找一些示例代码,可以按字母顺序对 HTML 列表中的列表项进行排序。任何人都可以帮忙吗?
Here is a sample list for people to work with:
以下是供人们合作的示例列表:
<ul class="alphaList">
<li>apples</li>
<li>cats</li>
<li>bears</li>
</ul>
回答by Chatu
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 */
});
回答by Ergec
For future googlers, I've found this plugin very useful. It has option to define character order for non-latin languages.
对于未来的 googlers,我发现这个插件非常有用。它可以选择为非拉丁语言定义字符顺序。
Older versions (jQuery dependent)
旧版本(依赖于 jQuery)
$('.submenu > li').tsort({
charOrder: 'abc?defg?h?ijklmno?prs?tuüvyz'
});
For English only characters, no option is needed to define
对于只有英文的字符,不需要任何选项来定义
$('.submenu > li').tsort();
Current version (jQuery independent) (29 March 2016)
当前版本(独立于 jQuery)(2016 年 3 月 29 日)
Current version of tinysort is now independent from jQuery. Pure JavaScript. I updated jsfiddle for new version usage.
tinysort 的当前版本现在独立于 jQuery。纯 JavaScript。我更新了 jsfiddle 以使用新版本。
tinysort('.submenu > li', {
charOrder: 'abc?defg?h?ijklmno?prs?tuüvyz'
});
Demohttp://jsfiddle.net/ergec/EkScy/
演示http://jsfiddle.net/ergec/EkScy/
Websitehttp://tinysort.sjeiti.com/
回答by berniecc
Try this:
尝试这个:
var elems = $('.alphalist li').detach().sort(function (a, b) {
return ($(a).text() < $(b).text() ? -1
: $(a).text() > $(b).text() ? 1 : 0);
});
$('.alphalist').append(elems);