使用Javascript/Jquery根据类名对DIV进行排序

Cal*_*lum 5 jquery

我有以下HTML结构:

<div id="container">
    <div>1</div>
    <div class="red">2</div>
    <div class="red">3</div>
    <div>4</div>
    <div>5</div>
    <div class="red">6</div>
    <div>7</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想运行一些Jquery,它将对div容器内的div进行排序,首先排序具有class ="red" 的div ,然后排序那些没有的div ,所以最终的结构应该是:

<div id="container">
    <div class="red">2</div>
    <div class="red">3</div>
    <div class="red">6</div>
    <div>1</div>
    <div>4</div>
    <div>5</div>
    <div>7</div>
</div>
Run Code Online (Sandbox Code Playgroud)

救命?谢谢.

PSL*_*PSL 18

试试这个:

 $(function(){
   var elem = $('#container').find('div').sort(sortMe);
   $('#container').append(elem);
 });

 function sortMe(a, b) {
        return a.className < b.className;
  }
Run Code Online (Sandbox Code Playgroud)

演示

随着一些fadeIn/fadeout动画

var elem = $('#container').find('div').sort(sortByClass);

 function sortByClass(a, b) {
    return a.className < b.className;
 }

 var allElem = elem.get();
  (function append() {

    var $this = $(allElem.shift());

     $('#container').append(
                $this.fadeOut('slow'))
                         .find($this)
                             .fadeIn('slow', function () {
                                      if (allElem.length > 0) 
                                          window.setTimeout(append);
                            });
      })();
Run Code Online (Sandbox Code Playgroud)

演示