3

私は次のHTMLスキーマを持っています

<div id="txm_left_column">
    <div class="id">
        <h2>Some Name1</h2>
        <div>// another list</div>
    </div>
    <div class="id">
        <h2>Some Name2</h2>
        <div>// another list</div>
    </div>
</div>

ユーザーはそのリストにアイテムを追加できます。すべてのアイテムはDivs、 の名前のアルファベット順に並べる必要がありh2ます。私には2つの選択肢があります

1)アルファベット順が正しい2つのdivの間に新しいアイテムを挿入できるようにする必要があります

2) リスト全体を再編成します。

私のアプローチは、オプション 2 でしDivsた。h2

注文するために次のコードを思いつきましたが、このコードはH2s なしで注文された s の新しいリストを作成しdivます。次に、同じ関数を使用してオプション1)を実行しようとしましたが、このようなものに挿入しようとしました(upA < upB) ? -1 : (NEW_ITEM_NAME> upB) ? 1 : 0が、ソートが壊れないため、問題が発生します。

私は2つのことを疑問に思っていました.1つは、リターン0がソートを壊さないので、どのようにソートを壊すことができるかということです。または、リストを整理する方法についてのヘルプ。

ありがとう

jQuery("#txm_left_column > div").children("h2").sort(function(a, b) {
    var upA = jQuery(a).text().toUpperCase();
    var upB = jQuery(b).text().toUpperCase();
    return (upA < upB) ? -1 : (upA > upB) ? 1 : 0;
}).appendTo(selector);
4

2 に答える 2

4

ただし、このコードは、div なしで順序付けられた H2 の新しいリストを作成します。

h2これは、要素ではなく要素を並べ替えているためですdiv

jQuery("#txm_left_column > div").sort(function(a, b) {
    var upA = jQuery('> h2', a).text().toUpperCase();
    var upB = jQuery('> h2', b).text().toUpperCase();
   // ...
}).appendTo(selector);
于 2013-08-15T14:28:15.680 に答える