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