以下是表格重排各行的局部代码,俺很笨,实在看不懂中间的一段,画出了流程图也理解不了,恳请大虾用汉语解释其中带问号部分的算法。 只有当b[j]=b[i-1]才不用从新调整,或者就要调整其前后位置啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 表格排序的函数,function sortTableHandle(table, n) //参数:表格对象,排序列(第0行单元格){ //function String.prototype.trim() {return this.replace(/(^\s*)|(\s*$)/g,"");} function getAsc(str) { try{ execScript("strAsc = ASC('"+ str +"')", "vbscript");} catch(e){alert("对不起!你的浏览器版本太低!不能支持排序!"); return false;} if(strAsc < 0) strAsc += 65535; return strAsc; } var e = window.event.srcElement; TableSortCell = e; var td = new Array(), a; //a中是单列重排后的顺序数组,包含了原来单元格和次序 for(var i=1; i<table.rows.length; i++) { td[i-1] = table.rows[i].cells[n].innerText.trim() + "_"+ i; } if(TableSortFlag) a = td.sort(sortCondition); else a = td.sort().reverse(); var b = new Array(); //b中只包含新的各行对应原来的第几行。 for(var i=0; i<td.length; i++) b[i] = parseInt(td[i].substr(td[i].lastIndexOf("_")+1)); var length = a.length;for(var i=1; i<length; i++){ if(b[i-1] != i) { table.moveRow(b[i-1], i);//move(source,target) for(var j=0; j<length; j++) //重新调整 { if(b[j]>=i && b[j]<b[i-1]) //???????????????????????? b[j]++; //????????????????????????? } b[i-1] = i; }} 俺现在知道了,当时误解了moveRow这个行数,以为是两个行交换,其实moveRow除了两个参数涉及到的行之外,还会影响到其它行。 js错误: 意外地调用了方法或属性访问。 今天交项目,求助EXT高手 JS有没有办法做到这样 js如法加裁,急需要帮助解决。谢谢。 给一个单元格innerHTML赋一个flash,为什么整个页面会抖动? 关于浮动图标 小小错误 望大家帮忙 关于单击图片触发文本框双击事件事件的问题?? 有办法把一个javascript的二维数组传递到asp吗? 怎么没效果啊??图片替换问题 ╋╋╋╋╋╋╋那位朋友帮忙解释一下这几个JavaScript函数!十分感谢!╋╋╋╋╋╋ 一个滚屏的问题
function sortTableHandle(table, n) //参数:表格对象,排序列(第0行单元格)
{
//function String.prototype.trim() {return this.replace(/(^\s*)|(\s*$)/g,"");}
function getAsc(str)
{
try{ execScript("strAsc = ASC('"+ str +"')", "vbscript");}
catch(e){alert("对不起!你的浏览器版本太低!不能支持排序!"); return false;}
if(strAsc < 0) strAsc += 65535;
return strAsc;
}
var e = window.event.srcElement;
TableSortCell = e;
var td = new Array(), a;
//a中是单列重排后的顺序数组,包含了原来单元格和次序
for(var i=1; i<table.rows.length; i++)
{
td[i-1] = table.rows[i].cells[n].innerText.trim() + "_"+ i;
}
if(TableSortFlag) a = td.sort(sortCondition);
else a = td.sort().reverse();
var b = new Array();
//b中只包含新的各行对应原来的第几行。
for(var i=0; i<td.length; i++)
b[i] = parseInt(td[i].substr(td[i].lastIndexOf("_")+1));
var length = a.length;
for(var i=1; i<length; i++)
{
if(b[i-1] != i)
{
table.moveRow(b[i-1], i);//move(source,target)
for(var j=0; j<length; j++) //重新调整
{
if(b[j]>=i && b[j]<b[i-1]) //????????????????????????
b[j]++; //?????????????????????????
}
b[i-1] = i;
}
}