参考例子js写了纵向合并,但是中间部分合并不完全

横向扩展的数据,参考例子用js写了纵向合并的效果,但是只是两行合并,现在有4行,中间部分没有合并,这个应该怎么修改一下阿?image.png

项目整体运营.cpt

FineReport yao4460 发布于 2021-5-18 14:23
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
snrtuemcLv8专家互助
发布于2021-5-18 14:52

增加跨行判断,你现在四行,5行的话,多几个if判断

效果

image.png

image.png

for (var i = 0; i < 4; i++) {

$(".x-table tr:eq(" + i + ") td").each(function() { //遍历第一行单元格

var id = $(this).attr("id"); //提取单元格的id属性

//判断当前单元格的值是否与下一行对应的单元格的值相等

if ($(this).text() == $("td[id^=" + id.substr(0, 1) + (3 + i) + "-" + "]").text()) {

$("td[id^=" + id.substr(0, 1) + (2 + i) + "-" + "]").remove(); //删除下一行对应的单元格

$("td[id^=" + id.substr(0, 1) + (3 + i) + "-" + "]").remove(); //删除下一行对应的单元格

$(this).attr("rowspan", 3); //当前单元格合并两行

}

else if ($(this).text() == $("td[id^=" + id.substr(0, 1) + (2 + i) + "-" + "]").text()) {

$("td[id^=" + id.substr(0, 1) + (2 + i) + "-" + "]").remove(); //删除下一行对应的单元格

$(this).attr("rowspan", 2); //当前单元格合并两行

}

})

}

for (var i = 7; i <=11; i++) {

$(".x-table tr:eq(" + i + ") td").each(function() { //遍历第一行单元格

var id = $(this).attr("id"); //提取单元格的id属性

//判断当前单元格的值是否与下一行对应的单元格的值相等

if ($(this).text() == $("td[id^=" + id.substr(0, 1) + (3 + i) + "-" + "]").text()) {

$("td[id^=" + id.substr(0, 1) + (2 + i) + "-" + "]").remove(); //删除下一行对应的单元格

$("td[id^=" + id.substr(0, 1) + (3 + i) + "-" + "]").remove(); //删除下一行对应的单元格

$(this).attr("rowspan", 3); //当前单元格合并两行

}

else if ($(this).text() == $("td[id^=" + id.substr(0, 1) + (2 + i) + "-" + "]").text()) {

$("td[id^=" + id.substr(0, 1) + (2 + i) + "-" + "]").remove(); //删除下一行对应的单元格

$(this).attr("rowspan", 2); //当前单元格合并两行

}

})

}

最佳回答
0
No1-王子阳Lv5中级互助
发布于2021-5-18 14:49
合并单元格不行么?
  • yao4460 yao4460(提问者) 不行,标题行的数据是横向扩展出来的
    2021-05-18 14:50 
  • 3关注人数
  • 879浏览人数
  • 最后回答于:2021-5-18 14:52
    请选择关闭问题的原因
    确定 取消
    返回顶部