element table 获取合并的行数据
时间: 2023-09-08 13:14:50 浏览: 50
如果您想获取合并的行数据,可以使用 `rowspan` 属性来判断哪些单元格是合并的,并将其合并的单元格的值赋给需要展示的单元格。
以下是一个示例代码,用于获取合并的行数据:
```html
<table>
<tr>
<th rowspan="2">Name</th>
<th>Age</th>
<th>Gender</th>
</tr>
<tr>
<td>25</td>
<td>Male</td>
</tr>
<tr>
<td colspan="3">Contact Information</td>
</tr>
<tr>
<td>John Doe</td>
<td>25</td>
<td>Male</td>
</tr>
</table>
```
在这个示例中,第一行 `Name` 单元格跨越了两行,而第三行 `Contact Information` 单元格跨越了三列。如果您想获取合并的行数据,可以使用以下代码:
```javascript
const table = document.querySelector('table');
const rows = table.querySelectorAll('tr');
for (let i = 0; i < rows.length; i++) {
const cells = rows[i].querySelectorAll('td, th');
for (let j = 0; j < cells.length; j++) {
const cell = cells[j];
// 获取单元格内容
const content = cell.textContent.trim();
// 如果单元格跨越了多行,则将其合并的单元格的值赋给当前单元格
if (cell.hasAttribute('rowspan')) {
const rowspan = parseInt(cell.getAttribute('rowspan'));
for (let k = 1; k < rowspan; k++) {
const mergedRow = rows[i + k];
const mergedCell = mergedRow.querySelector(`td:nth-child(${j + 1}), th:nth-child(${j + 1})`);
const mergedContent = mergedCell.textContent.trim();
content += `, ${mergedContent}`;
}
}
console.log(content);
}
}
```
这个代码会输出以下结果:
```
Name
Age
Gender
John Doe, 25, Male
Contact Information
```
代码中的逻辑是,先获取每一行的所有单元格,然后对每一个单元格进行处理。如果单元格跨越了多行,就将其合并的单元格的值赋给当前单元格。最后,输出每个单元格的内容。