*{}{font-size:14px}button{}{margin:3px}

表格操作类(添加,删除,排序,上移,下移)

系统 1898 0

http://www.cnblogs.com/zyh-nhy/archive/2007/08/14/855063.html

< html >
< head >
< meta http-equiv ="Content-Type" content ="text/html;charset=gb2312" >
< style type ="text/css" > * { } { font-size : 14px } button { } { margin : 3px } </ style >
< script type ="text/javascript" >

var mytable = null ,mytable2 = null ;

window.onload
= function () {
mytable
= new CTable( " tbl " , 10 );
mytable2
= new CTable( " tbl2 " , 6 );
}


Array.prototype.each
= function (f) { for ( var i = 0 ;i < this .length;i ++ )f( this [i],i, this )}

function $A(arrayLike) {
for ( var i = 0 ,ret = [];i < arrayLike.length;i ++ )ret.push(arrayLike[i]);
return ret
}


Function.prototype.bind
= function () {
var __method = this ,args = $A(arguments),object = args.shift();
return function () {
return __method.apply(object,args.concat($A(arguments)));
}

}



function CTable(id,rows) {
this .tbl = typeof (id) == " string " ? document.getElementById(id):id;
if (rows && /^ \d + $ / .test(rows)) this .addrows(rows)
}


CTable.prototype
= {
addrows:
function (n) { // 随机添加n个tr
new Array(n).each( this .add.bind( this ))
}
,
add:
function () { // 添加1个tr
var self = this ;
var tr = self.tbl.insertRow( - 1 ),td1 = tr.insertCell( - 1 ),td2 = tr.insertCell( - 1 ),td3 = tr.insertCell( - 1 );
var chkbox = document.createElement( " INPUT " )
chkbox.type
= " checkbox "
chkbox.onclick
= self.highlight.bind(self)
td1.appendChild(chkbox)
td1.setAttribute(
" width " , " 35 " )
td2.innerHTML
= Math.ceil(Math.random() * 99 )
td3.innerHTML
= Math.ceil(Math.random() * 99 )
}
,
del:
function () { // 删除所选tr
var self = this
$A(self.tbl.rows).each(
function (tr) { if (self.getChkBox(tr).checked)tr.parentNode.removeChild(tr)} )
}
,
up:
function () { // 上移所选tr
var self = this
var upOne = function (tr) { // 上移1个tr
if (tr.rowIndex > 0 ) {
self.swapTr(tr,self.tbl.rows[tr.rowIndex
- 1 ])
self.getChkBox(tr).checked
= true
}

}

var arr = $A(self.tbl.rows).reverse()
if (arr.length > 0 && self.getChkBox(arr[arr.length - 1 ]).checked) {
for ( var i = arr.length - 1 ;i >= 0 ;i -- ) {
if (self.getChkBox(arr[i]).checked) {
arr.pop()
}
else {
break
}

}

}

arr.reverse().each(
function (tr) { if (self.getChkBox(tr).checked)upOne(tr)} );
}
,
down:
function () {
var self = this
var downOne = function (tr) {
if (tr.rowIndex < self.tbl.rows.length - 1 ) {
self.swapTr(tr,self.tbl.rows[tr.rowIndex
+ 1 ]);
self.getChkBox(tr).checked
= true ;
}

}

var arr = $A(self.tbl.rows)

if (arr.length > 0 && self.getChkBox(arr[arr.length - 1 ]).checked) {
for ( var i = arr.length - 1 ;i >= 0 ;i -- ) {
if (self.getChkBox(arr[i]).checked) {
arr.pop()
}
else {
break
}

}

}

arr.reverse().each(
function (tr) { if (self.getChkBox(tr).checked)downOne(tr)} );
}
,
sort:
function () { // 排序
var self = this ,order = arguments[ 0 ];
var sortBy = function (a,b) {
if ( typeof (order) == " number " ) { // 数字,则按数字指示的列排序
return Number(a.cells[order].innerHTML) >= Number(b.cells[order].innerHTML) ? 1 : - 1 ; // 转化为数字类型比较大小
}
else if ( typeof (order) == " function " ) { // 为程序,按程序的返回结果排序
return order(a,b);
}
else {
return 1 ;
}

}

$A(self.tbl.rows).sort(sortBy).each(
function (x) {
var checkStatus = self.getChkBox(x).checked;
self.tbl.firstChild.appendChild(x);
if (checkStatus)self.getChkBox(x).checked = checkStatus;
}
);
}
,
rnd:
function () b

表格操作类(添加,删除,排序,上移,下移)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论