解决方案 »

  1.   

    可以参考
    http://blog.csdn.net/hc1104/article/details/8673670http://448136160.blog.163.com/blog/static/113489220201052902147663/
    的代码
      

  2.   

     这个更贴近你的需求可以参考http://blog.csdn.net/caojin723/article/details/3873856
      

  3.   

      $(json).each(function () {
        $("#tb_body_selected").append("<tr>"
          + "<td>" + this.code + "</td>"
          + "<td>" + this.name + "</td>"
          + "<td>" + this.unit + "</td>"     
          + "<td>" + this.price + "</td>"   
          + "<td>" + this.factory + "</td>"                                                  
          + "</tr>");
        });
      var $st = -1;
      $("#tb_body_selected tr").each(function(r) {
        if($st == -1) {
          $st = $(this).find('td:eq(0)');
        }else if($st.html() == $(this).find('td:eq(0)').html()) {
          $st.prop('rowspan', $st.prop('rowspan')+1);
          $(this).find('td:eq(0)').remove();
        }else $st = $(this).find('td:eq(0)'); 
      });也可以先从 json 中计算出合并的行数后再画表行
      

  4.   

    计算合并的行  var st = 0;
      json[0].r = 1;
      for(i=1; i<json.length; i++) {
        if(json[i].code == json[st].code) {
          json[i].r = 0;
          json[st].r++;
        }else {
          st = i;
          json[i].r = 1;
        } 
      }
             
      $(json).each(function () {
        $("#tb_body_selected").append("<tr>"
          + (this.r ? "<td rowspan=" + this.r + ">" + this.code + "</td>" : "")
          + "<td>" + this.name + "</td>"
          + "<td>" + this.unit + "</td>"     
          + "<td>" + this.price + "</td>"   
          + "<td>" + this.factory + "</td>"                                                  
          + "</tr>");
        });