如何根据值是否相等,然后将单元格相同的横向合并成一个大的单元格,且父级单元格不同,已经设置分组,拓展

function(){

    

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

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

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

console.log($(this).attr("id"))

//console.log($(this).text())

console.log($("td[id]"))

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

$("td[id^="+id.substr(0,1)+"2-"+"]").remove()

$(this).attr("colspan",3);   

console.log($(this).attr("colspan",3))

}

})

}


yzm308786 发布于 2021-1-19 10:02 (编辑于 2021-1-19 13:51)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
axingLv6专家互助
发布于2021-1-19 10:04

参考

扩展后连续单元格合并-https://help.fanruan.com/finereport/doc-view-3676.html

image.png

  • yzm308786 yzm308786(提问者) 试过了没用
    2021-01-19 13:11 
  • axing axing 回复 yzm308786(提问者) 模板放出来帮你写
    2021-01-19 14:07 
最佳回答
0
jongwangLv6中级互助
发布于2021-1-19 13:36(编辑于 2021-1-19 13:52)

可能js写的有问题


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


这个是纵向对比吧(还是固定了取了某行的),你不是要横向合并吗?

横向合并的话,可能得固定好,你要合并的列号,才好弄了


你参下这个吧,设计如下:

image.png


效果如下:

image.png


js合并单元格测试.cpt


写在加载结束事件的:


$(".x-table td").each(function(){ //遍历第一行单元格
	var id=$(this).attr("id");    //提取单元格的id属性
	//判断当前单元格的值BC列的单元格的值相等
	if($("td[id^=B"+id.substr(1,1)+"-"+"]").text()==$("td[id^=C"+id.substr(1,1)+"-"+"]").text()){
		$("td[id^=C"+id.substr(1,1)+"-"+"]").remove();  //删除下一列对应的单元格
		$("td[id^=B"+id.substr(1,1)+"-"+"]").attr("colspan",2);   //当前单元格合并两列
		}
	})


  • yzm308786 yzm308786(提问者) 谢谢大佬,我已经更新了需求,图片可以帮我看一下吗?
    2021-01-19 13:52 
  • jongwang jongwang 回复 yzm308786(提问者) 我想想哈,你这个是横向扩展的哦
    2021-01-19 13:54 
  • yzm308786 yzm308786(提问者) 回复 jongwang 对的,就是横向扩展,我以前没用过这个软件,前端也是小白
    2021-01-19 13:57 
  • jongwang jongwang 回复 yzm308786(提问者) 嗯嗯,如果我试的话,大概也是采用类似思路,应为扩展列,所以先定义一个列名的序列,然后,用循环来对比是否一致,看一致的个数,然后,选择删除几个单元格,合并几个单元格,我晚点看下
    2021-01-19 14:07 
  • 3关注人数
  • 509浏览人数
  • 最后回答于:2021-1-19 13:52
    请选择关闭问题的原因
    确定 取消
    返回顶部