0

リストEGがあります

<ol>
  <li NumVotes="3">[Alot of HTML]</li>
  <li NumVotes="2">[Alot of HTML]</li>
  <li NumVotes="1">[Alot of HTML]</li>
</ol>

最初の順序付けは問題ありません (C# LINQ)。表示されるアイテムの種類を変更できる JS フィルター システムがあるため、フィルターの変更後にリストを並べ替える必要があります。迅速にする必要があるため、単に html() をコピーすることは実際にはオプションではありません。

どうすればこれを達成できますか?

sortable プラグインを見ましたが、ユーザーが LI をドラッグできるようにするためだけのようです。

4

2 に答える 2

2

シンプルなソートアルゴリズムでうまくいきます:

var myArray = $("ol li");

myArray.sort(function (a, b) {

    a = parseInt($(a).attr("NumVotes"), 10);
    b = parseInt($(b).attr("NumVotes"), 10);

    if(a > b) {
        return 1;
    } else if(a < b) {
        return -1;
    } else {
        return 0;
    }
});

$("#results").append(myArray);

ここにフィドルがあります:http://jsfiddle.net/HU5ve/

ここでパフォーマンスが本当に問題になる場合は、jqueryish の代わりに a.getAttribute() を使用してください。これよりはるかに良くなるとは思えません。

于 2013-01-16T23:10:12.170 に答える
0

jQueryを使用して順序付きリストを逆にする方法に関するチュートリアルを見つけました:

$(document).ready(function() {   

    var countli = $('ol > li').size();
    $("ol > li").each(function(i) {
        var attrvalue = countli - i;
        $(this).attr("value",attrvalue);
    });
});

ここから取得: http://www.designchemical.com/blog/index.php/website-coding/create-a-reverse-order-ordered-list-using-jquery/

デモ: http://www.designchemical.com/lab/jquery/demo/jquery_reverse_unordered_list.htm

于 2013-04-13T08:39:51.990 に答える