【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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.