gpt4 book ai didi

javascript - 列出由带有字母标题的 javascript 按字母顺序排列的列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:38 25 4
gpt4 key购买 nike

我有一个这样的列表:

<ul id="list">
<li><a href="/">Adam</a></li>
<li><a href="/">Alex</a></li>
...
<li><a href="/">Zara</a></li>
</ul>

并且它已经由这个 JavaScript 按字母顺序排序:

var mylist = $('#list');
var listitems = mylist.children('li').get();
listitems.sort(function(a, b) {
return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase());
})
$.each(listitems, function(idx, itm) { mylist.append(itm); });

现在我需要像这样设置列表:

<ul id="list">
<li id="a"><a name="a" class="title">A</a>
<ul>
<li><a href="/">Adam</a></li>
<li><a href="/">Alex</a></li>
</ul>
</li>
<li id="b"><a name="b" class="title">B</a>
<ul>
<li><a href="/">Barry</a></li>
<li><a href="/">Becky</a></li>
</ul>
</li>
...
...
...
<li id="z"><a name="z" class="title">z</a>
<ul>
<li><a href="/">zavv</a></li>
<li><a href="/">zora</a></li>
</ul>
</li>
</ul>

要使用此 Apple Style Slider 中的列表.

你知道如何使用 JavaScript 实现吗?

最佳答案

最简单的方法(我猜)首先收集一个对象中的所有 li 元素(根据内容的首字母分类),然后分别对这些列表进行排序。由于代码超过一千个字,下面是我将如何做到这一点:

var list = { letters: [] };    //object to collect the li elements and a list of initial letters
$("#list").children("li").each(function(){
var itmLetter = $(this).text().substring(0,1).toUpperCase();
if (!(itmLetter in list)) {
list[itmLetter] = [];
list.letters.push(itmLetter);
}
list[itmLetter].push($(this)); //add li element to the letter's array in the list object
});

list.letters.sort(); //sort all available letters to iterate over them
$.each(list.letters, function(i, letter){
list[letter].sort(function(a, b) {
return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase()); //sort li elements of one letter
});
var ul = $("<ul/>"); //create new dom element and add li elements
$.each(list[letter], function(idx, itm){
ul.append(itm);
});
$("#list").append($("<li/>").append($("<a/>").attr("name", letter.toLowerCase()).addClass("title").html(letter)).append(ul)); //add the list to a new li and to #list ul
});

JSFiddle:http://jsfiddle.net/KnC6M/

关于javascript - 列出由带有字母标题的 javascript 按字母顺序排列的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11830432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com