具有NxM值的简单HTML表格。目标是使用jQuery合并列中相同的单元格。请注意,一行中没有重复项。
我知道如何隐藏相同的单元格,但是否有任何方法将带数据的单元格与空单元格组合在一个单元格中?
HTML:
<table border="1" id="testTable">
<tr>
<td>First</td>
<td>A</td>
<td>A</td>
</tr>
<tr>
<td>First</td>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>Second</td>
<td>V</td>
<td>S</td>
</tr>
<tr>
<td>Third</td>
<td>D</td>
<td>H</td>
</tr>
<tr>
<td>Third</td>
<td>E</td>
<td>E</td>
</tr>
</table>
JS:
var seenArray = {};
$('#testTable td').each(function()
{
var index = $(this).index();
var txt = $(this).text();
if (seenArray[index] === txt)
{
$(this).text(''); //I think here should be "marging"
}
else
{
seenArray[index] = txt;
}
});
补充说明:还有一件事,数据最初以json数组形式检索,然后我首先使用 .parseJSON()
并将数据放入表格中:
for (var i = 0; i < obj.length; i++)
{
tr = $('<tr/>');
tr.append("<td>" + obj[i]['columnA'] + "</td>");
tr.append("<td>" + obj[i]['columnB'] + "</td>");
tr.append("<td>" + obj[i]['columnC'] + "</td>");
$('#testTable').append(tr);
}
更新
alFReD NSH 提供了一个适用于 2 个单元格的好方法。他的解决方案在这里。但是,如果有超过 2 个相等的单元格。