0

こんにちは、私はこのスクリプトをうまく使用しています。私の問題は、価格が 2 桁を超える場合、並べ替えがうまく機能しないことです。例: 商品価格が 120 の場合、正しくソートされません。ここで試すことができます http://jsfiddle.net/t5dc/

function sortUsingNestedText(parent, childSelector, keySelector) {
var items = parent.children(childSelector).sort(function(a, b) {
    var vA = $(keySelector, a).text();
    var vB = $(keySelector, b).text();
    return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;
  });
  parent.append(items);
}
 sortUsingNestedText($('#sortThis'), "div", "span.price");

助けてくれてありがとう

4

1 に答える 1

3

When you are comparing price, you need to cast string to number.

function sortUsingNestedText(parent, childSelector, keySelector) {
    var items = parent.children(childSelector).sort(function (a, b) {
        var vA = $(keySelector, a).text();
        var vB = $(keySelector, b).text();
        if (keySelector == 'span.price') {
            vA = Number(vA);
            vB = Number(vB);
        }

        return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;
    });
    parent.append(items);
}

http://jsfiddle.net/tc5dc/620/

于 2013-09-03T10:58:26.930 に答える