2012-09-06 65 views
1

排序.container .elements我試圖使用.sort()功能排序列表,以便:通過.elements ID

<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

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/

+0

我現在看到的邏輯。非常感謝。這很好 –