日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jquery > jquery.tablesorter.js中文表格排序的修改方法

jquery.tablesorter.js中文表格排序的修改方法

來源:程序員人生   發布時間:2013-12-29 11:06:46 閱讀次數:4206次

之前研究過一下表格排序。上網找了一些代碼研究了一下。勉強做了一個用著。后面發現當動態給單元格加超鏈接,或者列中存在一些空白,就排序不了了。

代碼: 仿一個網友的代碼寫的,不記得出自哪里了,改成可以支持中文排序,而且支持控件value的排序。 沒辦法,能力有限,只能。

代碼:

//轉換器,將列的字段類型轉換為可以排序的類型:String,int,float
function convert(sValue, sDataType)
{
switch(sDataType)
{
case "int":
return parseInt(sValue);
case "float":
return parseFloat(sValue);
case "date":
return new Date(Date.parse(sValue));
default:
return sValue.toString();
}
}

// 漢字排序方法
function chrComp(a,b)
{
return a.localeCompare(b);
}

//排序函數產生器
function generateCompareTRs(iCol, sDataType,isinput,sDec)
{
return function compareTRs(oTR1, oTR2)
{
if(isinput == 1)
{
var vValue1 = convert(oTR1.getElementsByTagName("input")[iCol].value);
var vValue2 = convert(oTR2.getElementsByTagName("input")[iCol].value);
}
else
{
var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
}
if(sDec=='desc')
{
if(sDataType=='int')
{
return vValue1 == vValue2 ? 0 :(vValue1 - vValue2 <0 ? 1 : -1);
}
else if(sDataType =='cn')
{
if(chrComp(vValue1,vValue2)>0)
{
return -1;
}
else if(chrComp(vValue1,vValue2)<0)
{
return 1;
}
else
{
return 0;
}
}
else
{
if (vValue1 > vValue2) {
return -1;
} else if (vValue1 < vValue2) {
return 1;
} else {
return 0;
}
}

}
else if(sDec=='asc')
{
if(sDataType=='int')
{
return vValue1 == vValue2 ? 0 :(vValue1 - vValue2 >0 ? 1 : -1);
}
else if(sDataType =='cn')
{
return chrComp(vValue1,vValue2);
}
else
{
if (vValue1 > vValue2) {
return 1;
} else if (vValue1 < vValue2) {
return -1;
} else {
return 0;
}
}
}
};
}

//重置單元格的classname
function ChangeClsName(tr,num)
{
num = num%2?1:2;
num.toString();
for ( var i = 0 ; i < tr.childNodes.length; i ++ )
{
tr.childNodes[i].className = "row" + num
}
}

/*排序方法(主函數)
sTableID 表格的id
iCol表示列索引
1,當不是input類型時,iCol表示的是tr的第幾個td;
2,當是input類型時,則iCol表示在這個tr中的第幾個input;
sDataType表示該cell的數據類型或者該input的value 的數據類型. 默認是string,也可以int, float. cn是中文
isinput表示排序的內容是不是input(1是, 0否)
sDec表示倒序還是順序(desc, 默認順序), 避免出現input值改變之后再排序時候出現直接倒序的情況。
*/
function sortTable(sTableID, iCol, sDataType, isinput, sDec)
{
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,isinput, sDec));

var oFragment = document.createDocumentFragment();
for (var i=0; i < aTRs.length; i++)
{
oFragment.appendChild(aTRs[i]);
ChangeClsName(aTRs[i],i);
}
oTBody.appendChild(oFragment);
}

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 在线观看精品一区 | 欧美一区二区三区影视 | 精品久久久网站 | 欧美精品黑人猛交高潮 | 亚洲精品电影网在线观看 | 亚洲国产欧美日韩 | 视频精品一区二区三区 | 一区二区三区四区在线播放 | 男女视频免费 | 国产成人免费网站 | 黄色在线观看视频 | av片在线看免费高清网站 | 成人免费视频在线观看 | 国产片网站 | 欧美一区二| 国产一区二区免费在线观看 | 丰满放荡岳乱妇699www | 免费在线观看91 | 99国产精品电影 | 国产精品久久久久久久久久久久 | 成人动漫一区二区三区 | 久久精彩 | 国产成人精品一区二区 | 亚洲精品乱码久久久久久国产主播 | 久久国产精品一区二区三区 | 久久精品国产久精国产 | 天堂男人网 | www.久久99| 成人欧美一区二区三区在线播放 | 精品欧美乱码久久久久久1区2区 | 精品九九 | 91久久综合亚洲鲁鲁五月天 | 99在线免费观看 | 久久久久国产精品一区二区 | 色亚洲天堂 | www99re| 操女人逼网站 | 亚洲免费黄色 | 国产精品毛片一区二区在线看 | 欧美九九 | 日韩精品免费一区二区三区 |