按.elements id排序.container .elements

时间:2012-09-06 18:31:04

标签: javascript jquery sorting

我正在尝试使用.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);
});

结果可怕......有人能告诉我光明吗?

1 个答案:

答案 0 :(得分: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/