按字母顺序排序列表

时间:2016-03-30 17:51:57

标签: javascript jquery list

我有一个问题。我需要创建一个javascript来按字母顺序排序无序列表。我通过以下功能实现了这一目标:

$(function () {
    var $list = $(document.getElementsByClassName("list"));
    $list.children().detach().sort(function (a, b) {
        return $(a).text().localeCompare($(b).text());
    }).appendTo($list);
});

但是,在客户的设计中,这些列表中有一些项目是其他项目" child",具有以下设置:

<ul>
    <li>alpha</li>
    <li>gama</li>
    <li>beta</li>
    <li style="margin-right: 5px;">beta1</li>
</ul>

在代码中,所有项目都在同一个列表中,但对于用户来说,&#34; beta1&#34;有点偏右,与其他款式相结合,让它看起来像是一件儿童用品。

根据我的上述功能,它会对所有项目进行排序。换句话说,&#34; beta1&#34;将与&#34;父母&#34;。

一起分类

我尝试了一些没有成功的事情,所以有人知道我怎么能做到这一点?即我的函数需要检查列表项是否已应用样式,如果是,则将其附加到上一个列表项并将其作为一个订单。

谢谢!

1 个答案:

答案 0 :(得分:1)

如何更改列表结构以包含子列表,然后为子列表添加样式。

<ul>
  <li>alpha</li>
  <li>gama</li>
  <li>beta
    <ul>
      <li>beta1</li>
    </ul>
  </li>
</ul>

CSS:

li ul {
  margin-right: 5px;
}