js实现table合并相同列单元格
生活随笔
收集整理的這篇文章主要介紹了
js实现table合并相同列单元格
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/**
* Created with JetBrains WebStorm.
* User: Johnny
* Date: 18-3-26
* Time: 下午4:48
* Table td 相同值合并行 要求:
* 1.table 必須包含tbody,tbody為數據主休
* 2.table 添加 id="kbdatas"
* 調用說明:
* $(function(){
* mergeRowSpan(4);
* });
*/
function uuidStr() {
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-";
var uuid = s.join("");
return uuid;
}
function merge(icol){
var tdTxt = "";
var list_map = new Array();
var uuid = uuidStr();
$("#kbdatas").find("tbody tr").each(function(){
var rmnode = $(this).attr("rmnode");
if(rmnode==null||rmnode==undefined||rmnode==""){
rmnode = 0;
}
var icolIndex = icol-rmnode;
var txt = $(this).find("td:eq("+icolIndex+")").text().trim();
if(tdTxt != txt){
uuid = uuidStr();
list_map.push(uuid);
tdTxt = txt;
}
$(this).find("td:eq("+icolIndex+")").attr("tduuid",uuid);
});
for(var i = 0; i < list_map.length; i++){
var tduuid = list_map[i];
$("#kbdatas").find("td[tduuid='"+tduuid+"']").each(function(index,el){
var tdlg = $("#kbdatas").find("td[tduuid='"+tduuid+"']").length;
if(0==index){
$(el).attr("rowspan",tdlg);
} else {
var rmnode = $(el).parent().attr("rmnode");
if(rmnode==null||rmnode==undefined||rmnode==""){
rmnode = 1;
} else {
rmnode++;
}
$(el).parent().attr("rmnode",rmnode);
$(el).remove();
}
});
}
}
function mergeRowSpan(colCount){
for(var icol = 0; icol < colCount; icol++){ merge(icol); }
}
* Created with JetBrains WebStorm.
* User: Johnny
* Date: 18-3-26
* Time: 下午4:48
* Table td 相同值合并行 要求:
* 1.table 必須包含tbody,tbody為數據主休
* 2.table 添加 id="kbdatas"
* 調用說明:
* $(function(){
* mergeRowSpan(4);
* });
*/
function uuidStr() {
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-";
var uuid = s.join("");
return uuid;
}
function merge(icol){
var tdTxt = "";
var list_map = new Array();
var uuid = uuidStr();
$("#kbdatas").find("tbody tr").each(function(){
var rmnode = $(this).attr("rmnode");
if(rmnode==null||rmnode==undefined||rmnode==""){
rmnode = 0;
}
var icolIndex = icol-rmnode;
var txt = $(this).find("td:eq("+icolIndex+")").text().trim();
if(tdTxt != txt){
uuid = uuidStr();
list_map.push(uuid);
tdTxt = txt;
}
$(this).find("td:eq("+icolIndex+")").attr("tduuid",uuid);
});
for(var i = 0; i < list_map.length; i++){
var tduuid = list_map[i];
$("#kbdatas").find("td[tduuid='"+tduuid+"']").each(function(index,el){
var tdlg = $("#kbdatas").find("td[tduuid='"+tduuid+"']").length;
if(0==index){
$(el).attr("rowspan",tdlg);
} else {
var rmnode = $(el).parent().attr("rmnode");
if(rmnode==null||rmnode==undefined||rmnode==""){
rmnode = 1;
} else {
rmnode++;
}
$(el).parent().attr("rmnode",rmnode);
$(el).remove();
}
});
}
}
function mergeRowSpan(colCount){
for(var icol = 0; icol < colCount; icol++){ merge(icol); }
}
轉載于:https://www.cnblogs.com/rey888/p/8674287.html
總結
以上是生活随笔為你收集整理的js实现table合并相同列单元格的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习银行转账系统-代码摘取csdn
- 下一篇: understand的安装