我正在寻找一些示例代码,它将按字母顺序对HTML列表中的列表项进行排序.有人可以帮忙吗?
以下是供人们使用的示例列表:
<ul class="alphaList">
<li>apples</li>
<li>cats</li>
<li>bears</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
Cha*_*atu 93
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 */
});
Run Code Online (Sandbox Code Playgroud)
对于未来的googlers,我发现这个插件非常有用.它可以选择定义非拉丁语言的字符顺序.
旧版本(依赖于jQuery)
$('.submenu > li').tsort({
charOrder: 'abcçdefg?h?ijklmnoöprs?tuüvyz'
});
Run Code Online (Sandbox Code Playgroud)
对于仅英文字符,无需定义任何选项
$('.submenu > li').tsort();
Run Code Online (Sandbox Code Playgroud)
当前版本(独立于jQuery)(2016年3月29日)
当前版本的tinysort现在独立于jQuery.纯JavaScript.我更新了jsfiddle用于新版本的用法.
tinysort('.submenu > li', {
charOrder: 'abcçdefg?h?ijklmnoöprs?tuüvyz'
});
Run Code Online (Sandbox Code Playgroud)
演示 http://jsfiddle.net/ergec/EkScy/
网站 http://tinysort.sjeiti.com/
小智 7
试试这个:
var elems = $('.alphalist li').detach().sort(function (a, b) {
return ($(a).text() < $(b).text() ? -1
: $(a).text() > $(b).text() ? 1 : 0);
});
$('.alphalist').append(elems);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36781 次 |
| 最近记录: |