js合并表格相同单元格(纵向)

<script>

  function getTable(table1) {
    var tb = document.getElementById(table1);

    trL = tb.rows.length;
    tdL = tb.rows[0].cells.length;
    var c;
    var count = 0
    for (let td = tdL - 1; td >= 0; td--) {
      for (var tr = 0; tr < trL; tr++) {
        if (count !== 0 && c && c !== tb.rows.length - 1) {
          tr = c
        }
        count = findSame(tb, tr, td)
        if (count !== 0) c = count + 2
        if (count === 0) { }
        else {
          tb.rows[tr].cells[td].rowSpan = count + 1
          for (var i = 1; i <= count; i++) {
            tb.rows[tr + i].removeChild(tb.rows[tr + i].cells[td])
          }

        }
        function findSame(tb, tr, td) {
          count = 0
          /*纵向比较*/
          function z(tb, tr, td) {
            if (td === 0) return true
            if (tb.rows[tr].cells[td - 1].innerHTML === tb.rows[tr + 1].cells[td - 1].innerHTML) {
              return z(tb, tr, td - 1)
            } else {
              return false
            }
          }
          /*横向比较*/
          function h(tb, tr, td, ) {
            if (tb.rows[tr + 1] && tb.rows[tr].cells[td] && tb.rows[tr + 1].cells[td] && tb.rows[tr].cells[td].innerHTML === tb.rows[tr + 1].cells[td].innerHTML) {
              if (z(tb, tr, td)) {
                count++
                return h(tb, tr + 1, td)
              } else {
                return count
              }
            } else {
              return count
            }
          }

          count = h(tb, tr, td)

          return count

        }
      }

    }
  }


  getTable('test1')

</script>

 

posted @ 2019-10-18 15:21  燕子fly  阅读(1009)  评论(0编辑  收藏  举报