我试图获取列表的内容,这不是按字母顺序排列的,然后将每一项添加到数组中,按字母顺序排序,然后按字母顺序插入列表中。
简单语言:我需要使用JS或jQuery按字母顺序排列列表。
这是我所拥有的。我只是不知道如何将数组的内容插入到列表中。
(预先谢谢大家:)
var sectors = [];
$("li").each(function() { sectors.push($(this).text()) });
sectors.sort();
console.log(sectors);<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<ul>
<li id="alphabet">B</li>
<li id="alphabet">C</li>
<li id="alphabet">A</li>
</ul>
发布于 2016-03-24 23:14:19
没有必要使用jQuery,您可以使用香草JavaScript。;)
它比jQuery快100倍,请查看性能比较图表http://clubmate.fi/append-and-prepend-elements-with-pure-javascript/。
发布于 2016-03-24 21:04:16
这里不需要生成数组,您可以在选择sort()元素的jQuery对象上直接使用li方法。排序之后,您可以按照更正的顺序将它们添加回父ul。试试这个:
$("li").sort(function(a, b) {
var aText = $(a).text(), bText = $(b).text();
return aText < bText ? -1 : aText > bText ? 1 : 0;
}).appendTo('ul');还请注意,在文档中拥有重复的id属性是无效的。您的#alphabet元素应该改为使用class。
发布于 2016-03-24 22:09:18
将id调整为.alphabet元素的className,以防止document中重复的id。
您可以使用String.prototype.split()和""作为参数,Array.prototype.sort(),.text()
var li = $(".alphabet"), text = li.text().split("").sort();
li.text(function(index) {
return text[index]
})<script src="//code.jquery.com/jquery-git.js"></script>
<ul>
<li class="alphabet">B</li>
<li class="alphabet">C</li>
<li class="alphabet">A</li>
</ul>
https://stackoverflow.com/questions/36209912
复制相似问题