html的table标签用js做合并单元格操作

JavaScript014

html的table标签用js做合并单元格操作,第1张

为什么要用js呢?table本身就有合并单元格的功能,其实如果你用js也是给table添加对应的样式。具体代码如下:

<style>

table{ border-collapse:collapse}

table td{ border:2px solid #ddd width:50px height:25px text-align:center}

</style>

<table>

  <tr>

    <td colspan="2">123</td> //横向合并单元格

    <td>456</td>

    <td>789</td>

  </tr>

  <tr>

    <td rowspan="2">123</td> //竖向合并单元格

    <td>456</td>

    <td>456</td>

    <td>456</td>

  </tr>

  <tr>

    <td>123</td>

    <td>456</td>

    <td>456</td>

  </tr>

</table>

首先,tableUI中有几个重要的方法: printGrid 画出单元格的框框paintCell 画出单元格的那个矩形columnAtPoint(一个点) 返回指定位置属于表格中的哪个列rowAtPoint(一个点) 返回指定位置属于表格中的哪个行而这两个功能的实现都依赖于getCellRect这个方法,getCellRect的作用是返回位于 row行 column列的单元格矩形,返回的矩形的大小决定了画出来的单元格的大小。所以问题就简单了,只要创造一种新的数据结构,把合并信息加进去,然后重载getCellRect方法,使其返回的值体现了合并单元格。当用户选择单元格时,对于被覆盖的单元格,重载rowAtPoint和columnAtPoint方法,使得其返回其所在的合并单元格的起始行列。大体上就是这样了。