<table>
<tr><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>3</td></tr>
<tr><td>1</td></tr>
<tr><td>3</td></tr>
<tr><td>3</td></tr>
</table>
如上一个表格,如何用jquery将相同内容的行合并
最终要实现的效果是:<table>
<tr><td rowspan="2">1</td></tr>
<tr><td>2</td></tr>
<tr><td rowspan="3">3</td></tr>
</table>

解决方案 »

  1.   

    见 http://blog.csdn.net/caojin723/archive/2009/02/11/3873856.aspx 
      

  2.   

    $("table:eq(0) td").each(function(){
    var t = $(this).text();
    var cnt = 1;
    $(this).parent().nextAll().find("td").each(function(){
    if ($(this).text() == t)
    {
    cnt++;
    $(this).empty();
    }
    });
    $(this).replaceWith("<td rowspan='"+cnt+"'>"+t+"</td>");
    });
      

  3.   


    <table id="table1">
    <tr><td>1</td></tr>
    <tr><td>2</td></tr>
    <tr><td>3</td></tr>
    <tr><td>1</td></tr>
    <tr><td>3</td></tr>
    <tr><td>3</td></tr>
    </table>     function unite(tableID, index) {
             var tds = $('#' + tableID + ' tr td:nth-child(' + index + ')');
             tds.each(function(index, elem) {
                 var sameTds = $.grep(tds, function(n) { return $(n).html() == $(elem).html(); });
                 if (sameTds.length > 1) {
                     sameTds.shift().rowSpan = sameTds.length + 1;
                     $(sameTds).each(function() { $(this).parents('tr').remove(); });
                 }
             });
         }     unite('table1', 1);