1

次のマークアップがあります

<input type="checkbox" class="foo" />
<input type="checkbox" class="foo" />
<input type="checkbox" class="foo" />

ある時点で、data次のような jQuery を使用して、各インスタンスに -keyValuePair を挿入します (それぞれが一意です - 私はいくつかの呼び出しを持っています - 例は 1 つの割り当てのみをカバーしています)。

$('myMagicSelector').data('counter', '1');

今、私は次のコードでこのインスタンスをソートしようとしています

var $checkboxes = $('.foo').filter('checked');
$checkboxes.sort(function (a, b) {
    var dataA = a.data('counter');
    var dataB = b.data('counter');

    return dataA < dataB;
});

私は知っています...これはうまくいきません...

  • ソート関数に$(a)も導入せずにコードを修正するにはどうすればよいですか?$(b)
  • 私のためにこれを行うことができるライブラリはありますか(jquery固有)?
  • 他の入力はありますか?

非常に重要な注意:
UI の順序を変更したくありません (いいえ: UI-sort-thing はありません... tinySortのように)、UI の順序は期待される結果に対応していません。作成時のマークアップではなく、その場で並べ替えます...

4

1 に答える 1

2

el.getAttribute("data-counter")代わりに使用できます$(a).data("counter")

var $checkboxes = $('.foo:checked');
$checkboxes.sort(function (a, b) {
    var dataA = a.getAttribute("data-counter");
    var dataB = b.getAttribute("data-counter");
    return dataA < dataB;
});

フィドルの例

于 2012-04-16T07:40:43.900 に答える