日期:2014-05-16 浏览次数:20394 次
<script> function MergeCellsVertical(tbl, cellIndex) //相同数据上下合并 { if (tbl.rows.length < 2) return; var i, j; var last = tbl.rows(0).cells(cellIndex).innerHTML; var lastIndex = 0; for (i = 1; i < tbl.rows.length; i++) { if (tbl.rows(i).cells(cellIndex).innerHTML != last) // 发现新的值 { if (i > lastIndex + 1) { for (j = lastIndex + 1; j < i; j++) { tbl.rows(j).cells(cellIndex).removeNode(); } tbl.rows(lastIndex).cells(cellIndex).rowSpan = i - lastIndex; } //alert(tbl.rows(i).cells(cellIndex).innerHTML); last = tbl.rows(i).cells(cellIndex).innerHTML; lastIndex = i; } } // 最后一行要特别处理 if (lastIndex != tbl.rows.length - 1) { for (j = lastIndex + 1; j < tbl.rows.length; j++) { tbl.rows(j).cells(cellIndex).removeNode(); } tbl.rows(lastIndex).cells(cellIndex).rowSpan = tbl.rows.length - lastIndex + 1; } } </script>
?然后我在页面写了一个简单的表格:
<table name="test"> <tr> <td>数据 </td> <td>数据 </td> <td>数据 </td> <td>数据 </td> <td>数据 </td> <td>数据 </td> </tr> <tr> <td>数据 </td> <td>数据 </td> <td>数据 </td> <td>数据 </td> <td>数据 </td> <td>数据 </td> </tr> </table>
?
现在我调用js方法
<script> MergeCellsVertical(test,0);//按行进行合并 </script>
?
页面报javascript 错误 'rows.length' 为空或不是对象? 并且 一直取不到表格的length
?
将table的dom对象传进去
<table? name="test"> ,MergeCellsVertical(test,0);这样是不能将table对象传过去的。最好table id="test";如果用name,需要用document.getElementsByName("test")[0]来获得。