下面和大家分享一下jq实现表格中相同数据单元格的合并,希望对大家有帮助 要想实现这样的效果,得有一个前提,就是相同数据应该放在一起,所以在数据库select的时候需要先对数据进行排序或者分组,然后再传到前台.才能在前台进行合并. 代码片段: function hebing1(col){ //col为要合并的列 var trs = $("#editFormTable tr"); //获取table中有几个tr 建议用id选择器 var rows = 1; for(var i=trs.length;i>0;i--){ var cur = $($(trs[i]).find("td")[col]).text(); var next = $($(trs[i-1]).find("td")[col]).text(); if(cur==next){ rows++; $($(trs[i]).find("td")[col]).remove(); } else { $($(trs[i]).find("td")[col]).attr("rowspan",rows); rows=1; } } } 这样就行进行实现.for循环是根据你每页有多少条数据,从下往上进行判断合并.如果合并多列的时候代码如下: function hebing2(col){ //col 合并的列数 var trs = $("#editFormTable tr"); var rows = 1; for(var j=col;j>0;j--){ for(var i=trs.length;i>0;i--){ for(var k=j;k>0;k--){ var cur = $($(trs[i]).find("td")[k]).text(); var next = $($(trs[i-1]).find("td")[k]).text(); if(cur!=next){ $($(trs[i]).find("td")[j]).attr("rowspan",rows); rows=1; break; }else if(k==1){ rows++; $($(trs[i]).find("td")[j]).remove(); } } } } } 这里的参数是要合并的列数,从第一列开始,中间不能终端,即不能合并1列和3列.如果是不相邻的列可以加一个循环,要合并的列写进一个数组,然后循环遍历这个数组,调用hebing1()即可.注:此种方式要从右往左合并.因为你在合并第一个单元格的时候要对左边的单元格进行判断,如果左边的单元格数据一样的时候进行合并,不一样的时候,即使右边单元格数据一样也不能进行合并.