jquery根据数字对DOM进行排序

时间:2012-02-06 10:19:52

标签: javascript jquery javascript-events dom-manipulation

以下是重复的课程:

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

我有两个href标签作为排序按钮:

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

通过jquery,我如何重新渲染dom,<p>基于按钮点击排序。

小提琴位于here

1 个答案:

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

虽然这两个函数基本相同,但可能/应该稍微重构一下。