この記事の例では、jsヘッダーのソートの実装方法を説明します。皆さんの参考に共有してください。
具体的な実装方法は以下のとおりです。
<スクリプトタイプ="text/javascript">
//降順にソートするかどうか
var isDescending = true;
/*****************************************
* * 並べ替える行は
タグ内に配置する必要があります
* tableId: ソートテーブルID
*colNo: ソートされた列番号、つまり、0 から始まる列
* startRowNo: 0 から始まるソートの開始行番号
* sortLength: ソートする行数、
* type: ソート列のタイプ
*/
関数 sort(tableId,colNo,startRowNo,sortLength,type)
{
//ソート対象の行数が 1 または 0 の場合、ソート操作は実行されません
If(sortLength
return;
}
var currTable = document.getElementById(tableId);
var theHeader = currTable.outerHTML.substring(0, currTable.outerHTML.indexOf('') 7)
var theFooter = currTable.outerHTML.substring(currTable.outerHTML.indexOf('')-8);
//ここでの行数はヘッダ行とテーブル行を除いた行数です
var theRows = new Array(sortLength);
//テーブル内のデータをループします
for(i=startRowNo; i
{
theRows[i-startRowNo] = new Array(currTable.rows[i].cells[colNo].innerText.toLowerCase(), currTable.rows[i].outerHTML);
}
If(type.toUpperCase()=='NUMBER')
{
theRows.sort(compareNumber);
}
else if(type.toUpperCase()=='DATE')
theRows.sort(compareDate);
else if(type.toUpperCase()=='STRING')
theRows.sort(compareString);
var tableInfo=''
for(j=0; j
{
tableInfo =theRows[j][1];
}
isDescending = !isDescending;
currTable.outerHTML= theHeader tableInfo theFooter;
戻る ;
}
//数値を比較
関数compareNumber(x, y)
{
//データを通貨形式に変換します
a = x[0].excludeChars(",").trim();
b = y[0].excludeChars(",").trim();
If(a==""){a=0;}
If(b==""){b=0;}
if(isDescending)
{
return parseFloat(b) - parseFloat(a);
}
その他
{
return parseFloat(a) - parseFloat(b);
}
}
//文字列を比較
関数compareString(x, y)
{
if(isDescending)
{
if(x[0]>y[0]) return -1;
else if(x[0]
それ以外の場合は 0 を返します;
}
それ以外
{
if(x[0]
else if(x[0]>y[0]) return 1;
それ以外の場合は 0 を返します;
}
}
//对時間経過比较
関数compareDate(x,y){
var arr=x[0].split("-");
var starttime=new Date(arr[0],arr[1],arr[2]);
var starttimes=starttime.getTime();
var arrs=y[0].split("-");
var lktime=new Date(arrs[0],arrs[1],arrs[2]);
var lktimes=lktime.getTime();
if(isDescending)
{
return lktimes - starttimes;
}
それ以外
{
starttimes を返す - lktimes;
}
}
//削除文字列のうち指定されたすべての文字列
String.prototype.excludeChars = function(chars){
varmatching = new RegExp(chars , "g") ;
return this.replace(matching , '') ;
}
ここで説明されている大家向けの JavaScript プログラムの設計が役立つことを望みます。