[英]Redesign first td in html table to rowspan
我有这样的表:
<table>
<thead>
<tr>
<th></th>
<th>Col1</th>
<th>Col2</th>
<th>Col3</th>
<th>Col4</th>
<th>Col5</th>
</tr>
</thead>
<tbody>
<tr>
<td class="control"></td>
<td>AA</td>
<td>BB</td>
<td>CC</td>
<td>DD</td>
<td>EE</td>
</tr>
...
</table>
由于页面调整大小,我想将该表更改为类似于以下表设计。 更改应仅应用于奇数行,因为隐藏了偶数行,并且当我单击具有控件类的第一个td
时会显示该更改。
<table>
<tr>
<td rowspan="6" class="control"></td>
</tr>
<tr>
<td>Col1</td>
<td>AA</td>
</tr>
<tr>
<td>Col2</td>
<td>BB</td>
</tr>
<tr>
<td>Col3</td>
<td>CC</td>
</tr>
<tr>
<td>Col4</td>
<td>DD</td>
</tr>
<tr>
<td>Col5</td>
<td>EE</td>
</tr>
...
您可以使用flex box来完成此类任务。
flex-box能够将内容的当前流从行更改为列。 只是通过更改flex-flow: column;
flex-flow: row;
这是小提琴
您可以在css-tricks中了解有关flex-box的更多信息。
由于现在是div,因此您也不会遇到行/列跨度问题。 您可以自由调整高度和宽度。
最后,我尝试了几次,然后得到了答案
$('#myTable > thead > tr').css('display', 'none');
$('#myTable tr.parent').each(function () {
var _html = "";
var _newRow = "";
var header = Array();
$("#myTable tr th").each(function (i) {
header[i] = $(this).text();
});
$(this).find('td').each(function (i) {
if (i == 0) {
_html += "<td rowspan='6'>" + $(this).html() + "</td>";
}
else {
_newRow += "<tr> <td> " + header[i] + " :</td> <td>" + $(this).html() + "</td> </tr>";
}
})
$(this).html("");
$(this).html(_html);
$(_newRow).insertAfter($(this).closest("tr"));
})
希望我的回答对寻找相似代码的人有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.