代码:

 >  기사  >  웹 프론트엔드  >  JavaScript-테이블 정렬(내림차순/역순) 구현 소개(그림 포함)_javascript 기술

JavaScript-테이블 정렬(내림차순/역순) 구현 소개(그림 포함)_javascript 기술

WBOY
WBOY원래의
2016-05-16 17:33:021017검색
지식:

배열 방식:

정렬: 내림차순

역: 역순

효과:
JavaScript-테이블 정렬(내림차순/역순) 구현 소개(그림 포함)_javascript 기술
코드:
코드 복사 코드는 다음과 같습니다 :

<스타일>
*{
여백: 0;
패딩: 0;
}
#tableSort{
줄 높이: 22px;
배경: #ccc;
}
#tableSort thead,
#tableSort tfoot{
배경: #066;
색상: #fff;
글꼴 크기: 14px;
}
#tableSort thead a,
#tableSort tfoot a{
color: #fff;
}
#tableSort tfoot{
배경: #069;
}
#tableSort tbody td{
배경: #fff;
패딩: 3px 5px;
글꼴 크기: 12px;
}





















































































<스크립트>
//批weight设置checked值
function setChecked(checkBoxs,checked){
for(var i=0,len=checkBoxs.length;icheckBoxs[i] .checked=체크됨;
}
}
//批weight反置checked值
function reverseChecked(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){
num1-num2를 반환합니다.
});
if(isDesc){//desc
arr.reverse();
}
반환 도착;
}
//表格排序
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" 번호]=trs["id" 번호]||[];
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< klen;k ){
var tr=trs["id" arrNum[j]].pop();
tablePart.appendChild(tr);
}
}
}


var table=document.getElementById("tableSort");
var checkBoxs=table.tBodies[0].getElementsByTagName('input');
var checkAll=document.getElementById("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 parsInt(td.innerHTML.replace("\",''));
},this.isDesc);
timeSort.innerHTML="上架时间";
this.innerHTML="价格" sortMark[this.isDesc?1:0];
}



总结:

完成了基本功能,对于联合排序没有实现。后期会慢加入,有兴趣的可以把代码放到html页면 ,运行查看效果。
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 删除
反选  删除  
<일> 
<일> 
<일>