但是在之前的代码中,我修改后,列宽并未改变
时间: 2024-04-14 20:26:06 浏览: 84
非常抱歉之前的回答没有解决你的问题。在你的代码中,我注意到你使用了`colgroup`和`col`元素来设置列宽度,但是在`addRow()`和`addColumn()`函数中没有更新`colgroup`和`col`元素的数量。
以下是修正后的代码,包括对`colgroup`和`col`元素的更新:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>鉴本</title>
<style>
table {
border-collapse: collapse;
}
td, th {
border: 1.5px solid black;
padding: 5px;
}
table img {
max-width: 150px;
height: auto;
}
.popup {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
align-items: center;
justify-content: center;
}
.popup img {
max-width: 100%;
max-height: 100%;
cursor: zoom-out;
}
</style>
</head>
<body>
<div>
<button onclick="addRow()">新增一行</button>
<button onclick="addColumn()">添加一列</button>
<button onclick="deleteRow()">删除行</button>
<button onclick="deleteColumn()">删除列</button>
<button onclick="changeSize()">调整大小</button>
</div>
<div id="popup" class="popup" style="display: none;">
<img id="popupImg">
</div>
<table id="myTable">
<thead>
<tr>
<th>表头1</th>
<th>表头2</th>
<th>表头3</th>
<!-- 其他表头列 -->
</tr>
</thead>
<tbody>
<tr>
<td>单元格1</td>
<td>单元格2</td>
<td>单元格3</td>
<!-- 其他单元格列 -->
</tr>
</tbody>
</table>
<script>
var table = document.getElementById("myTable");
function addRow() {
var newRow = table.insertRow();
var cellsCount = table.rows[0].cells.length;
for (var i = 0; i < cellsCount; i++) {
var newCell = newRow.insertCell();
newCell.contentEditable = true;
newCell.innerHTML = "新单元格";
}
}
function addColumn() {
var cellsCount = table.rows[0].cells.length;
for (var i = 0; i < table.rows.length; i++) {
var newCell = table.rows[i].insertCell();
newCell.contentEditable = true;
newCell.innerHTML = "新单元格";
}
updateColWidths();
}
function updateColWidths() {
var colgroup = table.getElementsByTagName("colgroup")[0];
colgroup.innerHTML = ""; // 清空colgroup
var cellsCount = table.rows[0].cells.length;
for (var i = 0; i < cellsCount; i++) {
var col = document.createElement("col");
col.style.width = "40px";
colgroup.appendChild(col);
}
}
</script>
</body>
</html>
```
在这个修正后的代码中,我添加了一个`updateColWidths()`函数,用于更新`colgroup`和`col`元素的数量和宽度。在`addColumn()`函数中,我调用了`updateColWidths()`函数来确保`colgroup`和`col`元素与表格的列数保持一致,并且设置了固定的列宽度。
希望这次能够解决你的问题。如果还有其他疑问,请随时提问。非常抱歉给你带来了困扰。
阅读全文