2012-02-06 12 views
0

が繰り返されるクラスです。jQueryのソートDOM

<div class="inner"> 
      <p> 
        Text1 
        <span class="plus"> 25</span> 
        <span class="minus">12</span> 
      </p> 
</div> 



<div class="inner"> 
       <p> 
         Text2 
         <span class="plus"> 205</span> 
         <span class="minus">2</span> 
       </p> 
    </div> 

私は2つのhrefタグなどのソートボタンを行動しなければならない:jqueryの経由

<a href="#" id="pos">Sort by Positive.</a> 
<a href="#" id="neg">Sort by Negative.</a> 

を、どのようにすることができますボタンのクリックに基づいてソートされた<p>でDOMを再レンダリングします。

フィドルはhereです。以下のような

答えて

3

何か:

$("#pos").click(function(e){ 
    e.preventDefault(); 

    $('.inner').sort(function (a, b) { 
    return parseInt($('.plus', a).text(), 10) - parseInt($('.plus', b).text(), 10); 
    }) 
    .appendTo('div.main'); 
}); 

$("#neg").click(function(e){ 
    e.preventDefault(); 

    $('.inner').sort(function (a, b) { 
    return parseInt($('.minus', a).text(), 10) - parseInt($('.minus', b).text(), 10); 
    }) 
    .appendTo('div.main'); 
}); 

http://jsfiddle.net/pHyDm/8/

二つの機能は基本的に同じであり、/、おそらくビットをリファクタリングする必要がある可能性がありますが。