1

関数を使用し.sort()てリストをソートしようとしています:

<div class="centerCnt">
    <div class="widgetHelp" id="5">a</div>
    <div class="widgetHelp" id="1">b</div>
    <div class="widgetHelp" id="2">c</div>
    <div class="widgetHelp" id="3">d</div>
</div>

私は次のようなものを試しました:

list = $(".widgetHelp");
list.sort(function(a, b) {
    var aProp = parseInt($(a).attr('id').replace('help_id_','')),
        bProp = parseInt($(b).attr('id').replace('help_id_',''));
    return (aProp > bProp ? 1 : aProp < bProp ? -1 : 0);
});

ひどい結果に... 誰か私に光を見せてくれませんか?

4

1 に答える 1

1

jQueryはメソッドを公に実装し.sortていません。通常のjqueryのようなインターフェイスを実装しておらず、内部使用のみを目的としているため、非表示のメソッドです。そうは言っても、それはまだ使用できます。ライブラリに追加されてから変更されていません。これを試して:

list = $(".widgetHelp");
parent = list.parent();
list.sort(function(a, b) {
    var aProp = parseInt($(a).attr('id').replace('help_id_','')),
        bProp = parseInt($(b).attr('id').replace('help_id_',''));
    return (aProp > bProp ? 1 : aProp < bProp ? -1 : 0);
});
parent.append(list);

http://jsfiddle.net/rz5gL/

于 2012-09-06T18:34:12.737 に答える