0

嗨,我用这个脚本很好用,我的问题是如果价格高于 2 位,排序就不能很好地工作。示例:如果产品价格为 120,则无法正确排序。你可以在这里试试 http://jsfiddle.net/tc5dc/

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

当您比较价格时,您需要将字符串转换为数字。

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 回答