我有一个包含列表分隔符和项目的列表。我想按字母顺序一一排序列表分隔符下面的项目。在执行此操作之前,我需要将它们分组。问题在于,这些没有在div
中被禁止,但是它们处于同一级别。我已经尝试了很多,但是找不到如何将它们分组到一个数组中,以便能够遍历各个组。
我拥有的html结构如下:
<div class="list">
<div class="list-divider">A list divider</div>
<div class="element">A</div>
<div class="element">B</div>
<div class="list-divider">A list divider</div>
<div class="element">G</div>
<div class="element">A</div>
<div class="element">C</div>
<div class="element">B</div>
<div class="list-divider">A list divider</div>
<div class="element">A</div>
<div class="element">X</div>
<div class="element">X</div>
<div class="element">C</div>
</div>
是否有一种简单的方法可以将它们分组为数组?
答案 0 :(得分:1)
以下是我能想到的:
var sortable = [];
var newHTML = "";
$(".list > div").each(function(key, value) {
if (value.className == "list-divider"){
sortable.push([]);
}
else {
sortable[sortable.length-1].push(value);
}
})
for (i in sortable)
{
sortable[i].sort(function(a,b) {return (a.innerHTML > b.innerHTML) ? 1 : ((b.innerHTML > a.innerHTML) ? -1 : 0);} );
}
$(".list > .list-divider").each(function(key, value) {
newHTML += value.outerHTML;
for (i in sortable[key])
newHTML += sortable[key][i].outerHTML;
})
$(".list").html(newHTML)