【JavaScript】动态导入数据合并单元格的方法
先将数据库数据进行排序(order by,可以根据多个字段进行排序,具有优先级,第二个字段会在第一个字段相同的基础上完成排序),这样具有相同值得数据就会放在一起。
然后还用相同的list方法传入前台,传给前台成功以后,调用自己定义的合并单元格的方法。
如果要合并多列,需要定义多个方法,按照优先级,优先级低的排序时候应该校验优先级高的数据是否相同。
并且调用时候应该先排序优先级低的。
//合并相同数据的单元格
functionhebingRows1(col){
vartrs
= $("table tr");
varrows
= 1;
for(vari=trs.length;i>0;i--){
varcur
= $($(trs[i]).find("td")[col]).text();
varnext
= $($(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;
}
}
}
functionhebingRows2(col){
vartrs
= $("table tr");
varrows
= 1;
for(vari=trs.length;i>0;i--){
varcur
= $($(trs[i]).find("td")[col]).text();
varnext
= $($(trs[i-1]).find("td")[col]).text();
varcompany1
= $($(trs[i]).find("td")[1]).text();
varcompany2
= $($(trs[i-1]).find("td")[1]).text();
if(cur
== next&&company1 == company2){
rows++;
$($(trs[i]).find("td")[col]).remove();
}else{
$($(trs[i]).find("td")[col]).attr("rowspan",rows);
rows=1;
}
}
}
functionhebingRows3(col){
vartrs
= $("table tr");
varrows
= 1;
for(vari=trs.length;i>0;i--){
varcur
= $($(trs[i]).find("td")[col]).text();
varnext
= $($(trs[i-1]).find("td")[col]).text();
varcompany1
= $($(trs[i]).find("td")[1]).text();
varcompany2
= $($(trs[i-1]).find("td")[1]).text();
varmainproduct1
= $($(trs[i]).find("td")[2]).text();
varmainproduct2
= $($(trs[i-1]).find("td")[2]).text();
if(cur
== next&&company1 == company2&&mainproduct1==mainproduct2){
rows++;
$($(trs[i]).find("td")[col]).remove();
}else{
$($(trs[i]).find("td")[col]).attr("rowspan",rows);
rows=1;
}
}
}
hebingRows3(3);
hebingRows2(2);
hebingRows1(1);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.