2016-03-30 11 views
1

私には1つの質問があります。順序付けられていないリストをアルファベット順に並べ替えるために、javascriptを作成する必要があります。オーダー・リストアルファベット順

<ul> 
    <li>alpha</li> 
    <li>gama</li> 
    <li>beta</li> 
    <li style="margin-right: 5px;">beta1</li> 
</ul> 
:以下の設定で、他の項目の「子」ですこれらのリストには、いくつかの項目がある顧客の設計では、

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

しかし:私は次の関数でこれを達成しました

コードのすべての項目は同じリストの中にありますが、ユーザーのために「ベータ1」は少し右にあり、他のスタイルと組み合わせると、それは子アイテムのように見えます。

上記の機能では、すべてのアイテムを並べ替えます。つまり、「ベータ1」は「両親」と一緒にソートされます。

私は成功していないいくつかのことを試しました。だから、どうすればこれを実現できますか?つまり、私の関数は、リスト項目にスタイルが適用されているかどうかをチェックする必要があります。もしそれが前のリスト項目に追加されていれば、それを1つとして注文します。

ありがとうございます!

+0

私は、これはあなたのソリューションではもっともらしいかどうかを知りませんが、私はすべての子項目に 'データ・親=「」'属性を持つことになり、そのように多くの複雑さ。 – DBS

+0

これをチェック!! http://jsfiddle.net/stodolaj/De8Ku/ –

答えて

1

子リストを含むようにリスト構造を変更してから、子リストのスタイルを追加する方法について説明します。

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

CSS:削除

li ul { 
    margin-right: 5px; 
} 
関連する問題