この記事では、JSヘッダーソートの実装方法について説明します。参照のためにそれを共有してください。
特定の実装方法は次のとおりです。
コードコピーは次のとおりです。
<script type = "text/javascript">
//整理するかどうか
var isdescending = true;
/************************************************
*ソートする行は、<tbody> </tbody>タグに配置する必要があります
* TableID:テーブルIDをソートします
* colno:ソートされた列番号、つまりどの列が0から始まるか
* startrowno:0から始まる並べ替えのスタートライン数
*ソートレングス:ソートする行の数、
*タイプ:ソート列のタイプ
*/
関数sort(tableid、colno、startrowno、sortlength、type)
{
//ソートする行の数が1または0の場合、ソート操作は実行されません
if(sortlength <= 1){
戻る;
}
var currtable = document.getElementById(TableID);
var theheader = currtable.outerhtml.substring(0、currtable.outerhtml.indexof( '<tbody>')+7)
var thefooter = currtable.outerhtml.substring(currtable.outerhtml.indexof( '</tbody>')-8);
//ここの行の数は、ヘッダーテーブルとテーブルの行を削除する行の数です。
var therows = new Array(sortlength);
//テーブル内のデータを崩壊させます
for(i = startrowno; i <sortlength+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(比較);
else if(type.touppercase()== 'string')
therows.sort(比較);
var tableinfo = ''
for(j = 0; j <therows.length; j ++)
{
TableInfo+= Therows [j] [1];
}
isdescending =!isdescending;
currtable.outerhtml = theheader + tableinfo + thefooter;
戻る ;
}
//番号を比較します
関数比較(x、y)
{
//通貨形式のデータを変換します
a = x [0] .excludechars( "、")。trim();
b = y [0] .excludechars( "、")。trim();
if(a == ""){a = 0;}
if(b == ""){b = 0;}
if(isdessending)
{
parsefloat(b)-parsefloat(a)を返します。
}
それ以外
{
parsefloat(a)-parsefloat(b)を返します。
}
}
//文字列を比較します
関数比較(x、y)
{
if(isdessending)
{
if(x [0]> y [0])return -1;
else if(x [0] <y [0])return 1;
それ以外の場合は0を返します。
}
それ以外
{
if(x [0] <y [0])return -1;
else if(x [0]> y [0])return 1;
それ以外の場合は0を返します。
}
}
//時間を比較します
関数比較(x、y){
var arr = x [0] .split( " - ");
var starttime = new Date(arr [0]、arr [1]、arr [2]);
var starttimes = starttime.getTime();
var arrrs = y [0] .split( " - ");
var lktime = new Date(arrs [0]、arrs [1]、arrs [2]);
var lktimes = lktime.getTime();
if(isdessending)
{
lktimes -starttimes;
}
それ以外
{
return starttimes -lktimes;
}
}
//文字列内の指定されたすべての文字列を削除します
string.prototype.excludechars = function(chars){
var matching = new regexp(chars、 "g");
this.replace(matching、 '')を返します。
}
</script>
この記事がみんなのJavaScriptプログラミングに役立つことを願っています。