你设置rowspan不就可以了?
自己用js遍历所有tr,查找相同的设置rowspan进行合并,并且删除之后的td
DEMO,合并第二列
<table id="tb" border="1">
<tr><td>1</td><td>xx</td><td>111</td></tr>
<tr><td>2</td><td>xx</td><td>222</td></tr>
<tr><td>3</td><td>xx</td><td>333</td></tr>
<tr><td>4</td><td>xx1</td><td>444</td></tr>
<tr><td>5</td><td>xx1</td><td>555</td></tr>
<tr><td>6</td><td>xx2</td><td>66</td></tr>
</table>
<script>
var tb = document.getElementById('tb'),rowspan=1;
for (var i = 0; i < tb.rows.length; i++) {
if (tb.rows[i].cells[1].innerHTML && tb.rows[i + 1] && tb.rows[i + 1].cells[1].innerHTML == tb.rows[i].cells[1].innerHTML) {
tb.rows[i+1].cells[1].style.display='none'//隐藏此td
rowspan = 2;
for (var j = i + 2; j < tb.rows.length; j++) {//继续找后续行是否有相同的
if (tb.rows[j].cells[1].innerHTML == tb.rows[i].cells[1].innerHTML) rowspan++;
else break;
}
tb.rows[i].cells[1].rowSpan = rowspan;
}
}
</script>
你可以在查数据库的时候顺便把相同部门的信息以及重复次数查出来
或者把查出来的数据按相同部门再处理一下
相同的部门合并,姓名还有存在的必要么?具体想要展示什么内容呢
rowspan就可以解开上述问题