代码:
首頁 > web前端 > js教程 > javascript-表格排序(降序/反序)實作介紹(附圖)_javascript技巧

javascript-表格排序(降序/反序)實作介紹(附圖)_javascript技巧

WBOY
發布: 2016-05-16 17:33:02
原創
1043 人瀏覽過
知識點:

Array方法:

sort:降序

reverse:反序

效果:
 javascript-表格排序(降序/反序)實作介紹(附圖)_javascript技巧
程式碼:
複製程式碼複製程式碼
複製程式碼複製程式碼複製程式碼複製程式碼複製碼


*{
邊距:0;
填充:0;
}
#tableSort{
行高:22px;
背景:#ccc;
}
#tableSort 頭,
#tableSort tfoot{
背景:#066;
顏色:#fff;
字體大小:14px;
}
#tableSort 頭a,
#tableSort tfoot a{
顏色:#fff;
}
#tableSort tfoot{
背景:#069;
}
}
#tableSort tbody td{
背景:#fff;
內邊距:3px 5px;
字體大小:12px; }

















































































反選  刪除
 





表>

//批次設定checked值
function setChecked(checkBoxs,checked){
for (var i=0,len=checkBoxs.length;icheckBoxs[i] .checked=檢查;
}
}
//批次反置checked值
functionverseChecked(checkBoxs){
for(var i=0,len=checkBoxs.length;icheckBoxs[i].checked=!checkBoxs[i].checked;
}
}
//刪除tr值
function removeTr(tBody,tr){
tBody.removeChild(tr);
}
//取得tr
function getParentTr(o){
while(o){
o=o.parentNode;
if(o&&o.tagName==="TR"){
return o;
}
}
}
//arrSort排序
function arrSort(arr,isDesc){
var arr=arr.sort(function(num1,num2){
回傳1-num2;
});
if(isDesc){//desc
arr.reverse();
}
回傳arr;
}
//表格排序
回傳arr;
}
//表格排序
function tableSort(tablePart,col,fun,isDesc){
var arrNum=[],trs={};

for(var i=0,len=tablePart.rows.length;ivar td=tablePart.rows[i].cells[col];
var num=fun(td);
arrNum.push(num);
trs["id " num]=trs["id" num]||[];
trs["id" num].push(getParentTr(td));
}
arrNum=arrSort(arrNum,isDesc) ;
for(var j=0,jlen=arrNum.length;jfor(var k=0,klen=trs["id" arrNum[j]].length;k var tr=trs["id" arrNum[j]].pop();
tablePart.appendChild(tr);
}
}
}


var table=document.getElementById("tableSort");
var checkBoxs=table.tBodies[0].getElementsByTagName('input');
vareck ("checkAll");
var ReserveCheck=document.getElementById("reserveCheck");
var delSelect=document.getElementById("delSelect");
var timeSort=document.getElementById("timeSort" ;
var PriceSort=document.getElementById("priceSort");

checkAll.onclick=function(){
setChecked(checkBoxs,this.checked);
}

reserveCheck.onclick=function(){
reverseChecked(checkBoxs);
}
table.tBodies[0].onclick=function(e){
var ev=e||window. event;
var target=ev.target||ev.srcElement;
if(!target)return;
target._op=target.getAttribute("_op");
if(!target ._op)return;

if(target._op==="check"&&target.type==="checkbox"&&!target.checked){
checkAll.checked=target.checked;
}
if(target._op==="del"){
var tr=getParentTr(target);
removeTr(table.tBodies[0],tr);
}
}
delSelect.onclick=function(){
var chk=[];
for(var i=0,len=checkBoxs.length;iif (checkBoxs[i].checked){
var tr=getParentTr(checkBoxs[i]);
chk.push(tr);
}
}


}
}


}
}


}
}


}
}


}
}


}
}
) for(var j=0,jlen=chk.length;jremoveTr(table.tBodies[0],chk [j]);
} } var sortMark="↑↓"; timeSort.onclick=function(){ this.isDesc=(this.isDesc===true)?false:true; tableSort(table.tBodies[0] ,3,function(td){ return (new Date(td.innerHTML)).getTime(); },this.isDesc); priceSort.innerHTML="價格" this .innerHTML="上架時間" sortMark[this.isDesc?1:0]; } priceSort.onclick=function(){ this.isDesc=(this.isDesc===true)? false:true; tableSort(table.tBodies[0],4,function(td){ return parseInt(td.innerHTML.replace("¥",'')); },this .isDesc); timeSort.innerHTML="上架時間"; this.innerHTML="價格" sortMark[this.isDesc?1:0]; } 腳本> 總結: 完成了基本功能,對於聯合排序沒有實現。升級會慢慢加入,有興趣的可以把程式碼放在html頁面,運行查看效果。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
  商品名称 商品描述 上架时间 价格 操作
1 12312312313 2013-5-8 ¥120 删除
2 顶戴 2013-5-12 ¥140 删除
3 欠工 2013-4-8 ¥320 删除
4 七七 2013-8-8 ¥520 删除
5 2013-5-25 ¥820 删除
6 黄梅雨 2013-5-2 ¥120 删除
7 工作服 2013-5-18 ¥1220 删除
8 地茜共 2013-3-8 ¥1260 删除