制作一个有线表格,当:1.点击全选复选框时,全选下面四个复选框,再点全选复选框时取消全选; 2.当鼠标进入表格和离开表格时,改变表格背景色,颜色自定义;3、 点击删除按钮时,判断是否有复选框被选中,如果没有复选框被选中则提示用户进行选择,否则确认删除,并从表格中删除相应行
时间: 2024-03-03 21:51:06 浏览: 118
好的,我会尽力回答你的问题。这是一个比较复杂的问题,需要使用 JavaScript 来实现。以下是一个示例代码,可以满足你的要求:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>有线表格</title>
<style>
table {
border-collapse: collapse;
background-color: #fff;
}
th, td {
border: 1px solid #ccc;
padding: 10px;
text-align: left;
}
th {
background-color: #eee;
}
.selected {
background-color: #f00;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th><input type="checkbox" id="all" onchange="selectAll()"></th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr onmouseover="changeColor(this)" onmouseout="changeColor(this)">
<td><input type="checkbox" class="item"></td>
<td>张三</td>
<td>18</td>
<td>男</td>
<td><button onclick="deleteRow(this)">删除</button></td>
</tr>
<tr onmouseover="changeColor(this)" onmouseout="changeColor(this)">
<td><input type="checkbox" class="item"></td>
<td>李四</td>
<td>20</td>
<td>女</td>
<td><button onclick="deleteRow(this)">删除</button></td>
</tr>
<tr onmouseover="changeColor(this)" onmouseout="changeColor(this)">
<td><input type="checkbox" class="item"></td>
<td>王五</td>
<td>22</td>
<td>男</td>
<td><button onclick="deleteRow(this)">删除</button></td>
</tr>
</tbody>
</table>
<button onclick="deleteSelected()">删除选中项</button>
<script>
function selectAll() {
var all = document.getElementById("all");
var items = document.getElementsByClassName("item");
for (var i = 0; i < items.length; i++) {
items[i].checked = all.checked;
}
}
function changeColor(row) {
row.classList.toggle("selected");
}
function deleteRow(button) {
var row = button.parentNode.parentNode;
row.parentNode.removeChild(row);
}
function deleteSelected() {
var items = document.getElementsByClassName("item");
var selected = false;
for (var i = 0; i < items.length; i++) {
if (items[i].checked) {
selected = true;
var row = items[i].parentNode.parentNode;
row.parentNode.removeChild(row);
i--;
}
}
if (!selected) {
alert("请先选择要删除的项!");
}
}
</script>
</body>
</html>
```
解释一下代码:
1. HTML 部分:定义了一个表格,包含一个表头和一个表体,每行有一个复选框、三个数据列和一个操作列,以及一个删除选中项的按钮。同时,定义了一些 CSS 样式,包括表格的边框、内边距、背景色等等。
2. JavaScript 部分:定义了四个函数,分别实现了四个要求。
- `selectAll()`:当全选复选框被选中时,将下面的所有复选框都选中;否则,将下面的所有复选框都取消选中。
- `changeColor(row)`:当鼠标进入或离开一行时,改变该行的背景色。这里我们使用了 `classList` 属性,它可以方便地添加或删除元素的类名,从而实现样式的切换。
- `deleteRow(button)`:当点击某一行的删除按钮时,删除该行。
- `deleteSelected()`:当点击删除选中项的按钮时,先判断是否有复选框被选中,如果没有,则提示用户进行选择;否则,删除选中的所有行。
这里我们使用了 `getElementsByClassName()` 方法,它可以返回所有指定类名的元素的集合,然后遍历这个集合,判断哪些复选框被选中,将它们所在的行删除即可。
注意,这只是一个简单的示例代码,可能并不适合所有情况。如果你有更复杂的需求,可以自己修改代码或者使用其他第三方库来实现。
阅读全文