本帖最后由 kyokyo180 于 2013-05-14 23:37:23 编辑

解决方案 »

  1.   

    来源
    http://james.padolsey.com/javascript/sorting-elements-with-jquery/
    需要jquery,这是我在用的一个/**
     * jQuery.fn.sortElements
     * --------------
     * @param Function comparator:
     *   Exactly the same behaviour as [1,2,3].sort(comparator)
     *   
     * @param Function getSortable
     *   A function that should return the element that is
     *   to be sorted. The comparator will run on the
     *   current collection, but you may want the actual
     *   resulting sort to occur on a parent or another
     *   associated element.
     *   
     *   E.g. $('td').sortElements(comparator, function(){
     *      return this.parentNode; 
     *   })
     *   
     *   The <td>'s parent (<tr>) will be sorted instead
     *   of the <td> itself.
     */
    jQuery.fn.sortElements = (function(){
     
        var sort = [].sort;
     
        return function(comparator, getSortable) {
     
            getSortable = getSortable || function(){return this;};
     
            var placements = this.map(function(){
     
                var sortElement = getSortable.call(this),
                    parentNode = sortElement.parentNode,
     
                    // Since the element itself will change position, we have
                    // to have some way of storing its original position in
                    // the DOM. The easiest way is to have a 'flag' node:
                    nextSibling = parentNode.insertBefore(
                        document.createTextNode(''),
                        sortElement.nextSibling
                    );
     
                return function() {
     
                    if (parentNode === this) {
                        throw new Error(
                            "You can't sort elements if any one is a descendant of another."
                        );
                    }
     
                    // Insert before flag:
                    parentNode.insertBefore(this, nextSibling);
                    // Remove flag:
                    parentNode.removeChild(nextSibling);
     
                };
     
            });
     
            return sort.call(this, comparator).each(function(i){
                placements[i].call(getSortable.call(this));
            });
     
        };
     
    })();
    用法可以这样var numeric = $(this).hasClass('sort_number');
               if (numeric) {
                   $('.film_list_block:eq('+parent_index+') .list').sortElements(function(a, b){
                        return parseInt($(a).find('div:eq('+index+')').text()) > parseInt($(b).find('div:eq('+index+')').text()) ? 1*order : -1*order;
                   });
               }else {
                    $('.film_list_block:eq('+parent_index+') .list').sortElements(function(a, b){
                        return $(a).find('div:eq('+index+')').text().toLowerCase() > $(b).find('div:eq('+index+')').text().toLowerCase() ? 1*order : -1*order;
    });
               }
      

  2.   

    抱歉我看不是很懂..
    你能帮我套用到我的html吗
      

  3.   

    请问有利用for文丶if文丶sort这些文法排序的例子吗?