本帖最后由 qiuqiu_henry 于 2013-08-15 15:15:12 编辑

解决方案 »

  1.   

    改成先排序,再去重  第一次没问题吧
     我加了先清掉原来的合并,试试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 + ")");
    $(table_id+' td').show().attr("rowSpan",0);
    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;
     }
     }
     });
    }
      

  2.   


    哥们 这样做是不行的 ,这样 整个table都变成只有一行了。
    求帮忙
      

  3.   


    变成这个样子了。
    我说的是table的源码。
      

  4.   

    排序我简单写了个,然后先 排序再 合并相邻重复的<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script><table border=1 id="t1" >

    <tr> <th>t1</th> <th>t2</th> </tr>
     <tr> <td>1</td> <td>a</td> </tr>
     <tr> <td>1</td> <td>b</td> </tr>
     <tr> <td>3</td> <td>b</td> </tr>
     <tr> <td>4</td> <td>b</td> </tr>
     <tr> <td>1</td> <td>b</td> </tr>
    </table>
     
    <script>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 + ")");
     
     $(table_id+' td').show().attr("rowSpan",0);
    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;
     }
     }
     });
    }
    function sortTable(id,colnum,th){
      var tb=$(id+' tbody');
    var tds=[].slice.call( $(id + " tr td:nth-child(" +colnum + ")") ) ;
    var sort=$(th).data('sort')||1;
    console.info(sort)
    tds.sort(function(a,b){ return ($(a).text()>$(b).text()?1:-1)*sort   });
    $(th).data('sort',sort*-1);
    $.each(tds, function(i,v){
     tb.append( v.parentNode );
    });
    }
     
    $(function(){
    $('#t1 th').click(function(){
    sortTable('#t1',this.cellIndex+1,this);
    table_rowspan('#t1',this.cellIndex+1);
    });
    })
    </script>
      

  5.   

     <table class="table-css" id="showList" style="margin-left: 1px;">
        <thead>
        <tr role="head" style="display:none;" class="hideTr">
        <th style="width:135px"></th>
         <th sort="true" width="144px">aaa</th>
         <th style="width:48px"></th>
      <th style="width:116px"></th>
      <th style="width:120px"></th>
          <th style="width:136px"></th>
       <th style="width:88px"></th>
        <th style="width:145px"></th>
       <th style="width:124px"></th>
         </tr>
        </thead>
      
      <s:if test="data==null || data.isEmpty()">
    <tr class="list-row-even">
    <td style="width:1070px">There is not data what you wanted!</td>
    </tr>
    </s:if>
    <tbody>
    <s:else>
    <s:iterator value="data" id="date1" status="st">
    <s:if test="#st.index%2==0">
    <tr class="list-row-even">
    <td style="width:135px"><s:property value="date" /></td>
    <td style="width:144px"><s:property value="time" /></td>
    <td style="width:48px"><s:property value="userip" /></td>
    <td style="width:116px"><s:property value="servclass" /></td>
    <td style="width:120px"><s:property value="serverip" /></td>
    <td style="width:136px"><s:property value="gotoclass" /></td>
    <td style="width:88px"><s:property value="state" /></td>
    <td style="width:145px"><s:property value="WTserverip" /></td>
    <td style="width:124px"><s:property value="usernum" /></td>
    </tr>
    </s:if>
    <s:else>
    <tr class="list-row-odd">
    <td style="width:135px"><s:property value="date" /></td>
    <td style="width:144px"><s:property value="time" /></td>
    <td style="width:48px"><s:property value="userip" /></td>
    <td style="width:116px"><s:property value="servclass" /></td>
    <td style="width:120px"><s:property value="serverip" /></td>
    <td style="width:136px"><s:property value="gotoclass" /></td>
    <td style="width:88px"><s:property value="state" /></td>
    <td style="width:145px"><s:property value="WTserverip" /></td>
    <td style="width:124px"><s:property value="usernum" /></td>
    </tr>
    </s:else>
    </s:iterator>
    </s:else>
    </tbody>
      </table>以上table源码 。
    你那个行去重的代码 ,是有问题的 不信你可以自己试试。
    会把所有的td排成一行。