<script>
//参数为需要合并的列
merge (icol) {
// console.log(icol)
var tdTxt = ''
var list_map = new Array()
var uuid = ''
var icolIndex = icol - 1
var that = this
$('#table').find('tbody tr').each(function () {
var txt = $(this).find('td:eq(' + icolIndex + ')').text().trim()
if (tdTxt != txt) {
// console.log(txt);
uuid = that.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]
$('#table').find("td[tduuid='" + tduuid + "']").each(function (index, el) {
var tdlg = $('#table').find("td[tduuid='" + tduuid + "']").length
var obj = $(el).parent('tr')
if (index == 0) {
$(el).attr('rowspan', tdlg)
} else {
$(el).remove()
}
})
}
return true
},
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
},
</script>
需要合并多列时,需要先合并靠后的列,然后在合并靠前的列。(先合并靠前的列容易引起列错位)