【发布时间】:2018-09-06 00:04:45
【问题描述】:
如何将带有水平标题的 HTML 表格转换为每行包含两列表格的表格?
左侧的列将包含垂直标题,而右侧的列将包含相关值。
This fiddle 显示了原始表格和将要显示的表格的示例。
看看this couple of tables,预期的行为包括将带有水平标题的表格变成带有垂直标题的表格,但要注意如果第一个表格有不止一行,第二个表格也应该包含相同数量的行,但由第一列中带有垂直标题的表格和第二列中的对应值组成。
原表:
<table id="tableid">
<thead>
<tr>
<th>Name</th>
<th>Surname</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Smith</td>
<td>47</td>
</tr>
<tr>
<td>Bob</td>
<td>Jones</td>
<td>38</td>
</tr>
</tbody>
目标表:
<table id="tableid">
<tr>
<table>
<tr>
<th>Name</th>
<td>John</td>
</tr>
<tr>
<th>Surname</th>
<td>Smith</td></tr>
<tr>
<th>Age</th>
<td>47</td>
</tr>
</table>
</tr>
<tr>
<table>
<tr>
<th>Name</th>
<td>Bob</td>
</tr>
<tr>
<th>Surname</th>
<td>Jones</td></tr>
<tr>
<th>Age</th>
<td>38</td>
</tr>
</table>
</tr>
</table>
【问题讨论】:
-
是打算手动转换还是用javascript编程?
-
使用 javascript 和/或 CSS 以编程方式。
-
javascript代码的输入应该是什么?
-
我正在尝试修改网页,在页面加载时,通过覆盖 Chrome 中的一些 js/css,借助扩展 User Javascript 和 CSS:chrome.google.com/webstore/detail/user-javascript-and-css/…。所以我认为 javascript 的输入将是页面加载时的文档对象模型。
-
我尝试过用 tr { display: block; 覆盖一些 CSS向左飘浮; } th, td { 显示:块;但这还不够好,即使是粗略的解决方法...有什么想法吗?
标签: javascript html dom xpath html-table