转:js,jQuery 排序的实现,网页标签排序的实现,标签排序

js,jQuery 排序的实现:

重点: 想要实现排序,最简单的方法就是

  1. 先把标签用jQuery读进对象数组
  2. 用js排序好对象数组 (针对对象数组进行排序, 不要试图直接对网页的内容进行直接更改)
  3. 用对象数组内容覆盖网页上的标签数组; 
//排序从文字短的到长的
        var arr_a=new Array();
        var i=0;
        $(".type_list_txt > span:contains('T恤')").parent().children("a").each(function(){   
            arr_a[i]=$(this).clone();
            i++;
        });
        for(i=0; i<arr_a.length;i++){
            for(j=i+1;j<arr_a.length;j++){
                if($(arr_a[i]).text().length > $(arr_a[j]).text().length ){
                    temp=arr_a[i];
                    arr_a[i]=arr_a[j];
                    arr_a[j]=temp;
                }
            }
        }
        i=0;
        $(".type_list_txt > span:contains('T恤')").parent().children("a").each(function(){   
            $(this).replaceWith($(arr_a[i]));
            i++;
        });

原文地址:http://www.cnblogs.com/henw/archive/2011/04/26/2029474.html

参照原文,我写了自己的排序,原文的是简单的选择排序,我的是冒泡排序。

function doOrder(){
    //#orderCom为页面上的按钮
    var type = $("#orderCom").attr("type");
    console.log(type);
    var flelems = new Array();
    var fi = 0;
    //globalFl为全局变量,逐个获取元素 
    $("#detail"+globalFl).children().each(function(){
        flelems[fi] = $(this).clone();
        fi++;
    });
    if(type=="asc"){    
        //asc排序
        for(var i=0;i<flelems.length-1;i++){
            for(var j=0;j<flelems.length-i-1;j++){
                if(parseFloat($(flelems[j]).attr('cval'))>parseFloat($(flelems[j+1]).attr('cval'))){
                    var ele = flelems[j];
                    flelems[j] = flelems[j+1];
                    flelems[j+1] = ele;
                }
            }
        }
        $("#orderCom").attr("type","desc");
        $("#orderCom").text("积分↓");
    }else{
        //desc排序
        for(var i=0;i<flelems.length-1;i++){
            for(var j=0;j<flelems.length-i-1;j++){
                if(parseFloat($(flelems[j]).attr('cval'))<parseFloat($(flelems[j+1]).attr('cval'))){
                    var ele = flelems[j];
                    flelems[j] = flelems[j+1];
                    flelems[j+1] = ele;
                }
            }
        }        
        $("#orderCom").attr("type","asc");
        $("#orderCom").text("积分↑");
    }
    fi = 0;
    //把排序好的html写入
    $("#detail"+globalFl).children().each(function(){
        $(this).replaceWith($(flelems[fi]));
        fi++;
    });
}
原文地址:https://www.cnblogs.com/klbc/p/5972588.html