日期:2014-05-18  浏览次数:20757 次

关于jsp中table表格某一列,行去重的问题!!!
我点击一个按钮,就对页面中展现出来的table,进行行去重!

function table_rowspan(table_id,colnum){  
var table_firsttd = "";
var table_currenttd = "";
var table_SpanNum = 0;
var table_Obj = $(table_id + " tr td:nth-child(" +colnum + ")"); //nth-child  colnum=1  第一列
table_Obj.each(function(i){  
 if(i>0){
 $(this).css("color","#1E47BC"); 
 }
 if(i==0){
 table_firsttd = $(this);
 table_SpanNum = 1;
 }else{
 table_currenttd = $(this);
 if(table_firsttd.text()==table_currenttd.text()){
 table_SpanNum++;
 table_currenttd.hide(); //remove();
 table_firsttd.attr("rowSpan",table_SpanNum);
 table_firsttd.css("background-color","#E8F2FF");
 table_firsttd.css("color","#F7A045");
 }else{
 table_firsttd = $(this);
 table_SpanNum = 1;
 }
 }
 });
}


上面是我写的  行去重的js代码,我觉得还行吧。
调用:table_rowspan("#showList",1);   //传进去 table的id和第几列



我现在想实现一个功能就是 ,我点击另一个button,让上面这个行去重的table,恢复原样。
就是没有去重的效果,显示原始table。


var table_id="#showList";
var colnum=1;
var table_Obj = $(table_id + " tr td:nth-child(" +colnum + ")"); //nth-child  colnum=1  第一列
table_Obj.each(function(i){  
 var rowSpan = $(this).attr("rowSpan");
 if(rowSpan>1){
 $(this).attr("rowSpan",1);
 for(var i=1;i<rowSpan;i++){
 $(this).appendTo(table_Obj);
 }
 }
 });


这样写 不行,浏览器还会卡死。

求高人稍微指点迷津,小弟感激不尽。















------解决方案--------------------
先把以前table clone 一份 然后操作clone出来的,显示clone的同时隐藏以前的table;
reset的时候将clone的隐藏, 并show以前的table
------解决方案--------------------