对多列表格进行排序,并对不同数据进行排序

JavaScript代码如下:

function convert(sValue, sDataType)
{
    switch(sDataType)
    {
        case "int":
            return parseInt(sValue);
        case "float":
            return parseFloat(sValue);
        case "date":
            return new Date(Date.parse(sValue));
        defaule:
            return sValue.toString();
    }
}

function generateCompareTRs(iCol, sDataType)
{
    return function compareTRs(oTR1, oTR2) {
        var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
        var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
        if(vValue1 < vValue2)
            return -1;
        else if(vValue1 > vValue2)
            return 1;
        else
            return 0;
    };
}

function sortTable(sTableID, iCol, sDataType)
{
    var oTable = document.getElementById(sTableID);
    var oTBody = oTable.tBodies[0];
    var colDataRows = oTBody.rows;
    var aTRs = new Array;
    for(var i = 0; i < colDataRows.length; i++)
        aTRs[i] = colDataRows[i];
    aTRs.sort(generateCompareTRs(iCol, sDataType));
    var oFragment = document.createDocumentFragment();
    for(var i = 0; i < aTRs.length; i++)
        oFragment.appendChild(aTRs[i]);
    oTBody.appendChild(oFragment);
    oTBody.sortCol = iCol;



举例

 
   
     
     
     
   
 
 
   
     
     
     
   
   
     
     
     
   
 
Name Birthday Siblings
smith 7/12/1978 2
white 5/9/1973 4

你可能感兴趣的:(Web)