第一行input框右边有新增按钮,点击新增按钮后,上面新增一行并且右边带新增和删除按钮,此时新的第一行只有删除按钮,第二行有新增和删除按钮,点击第二行删除按钮,删除第二行,此时第一航右边有新增和删除按钮
时间: 2023-10-27 07:04:30 浏览: 31
这是一个关于前端开发的问题,具体的实现方式会根据具体的技术栈不同而有所差异。一般的实现思路是,在页面中添加一个表格或列表,点击新增按钮后,使用 JavaScript 动态创建一行表格或列表项,同时在该行右侧添加新增和删除按钮。点击新增按钮时,会在最后一行添加一行新的表格或列表项,并在该行右侧添加新增和删除按钮。点击删除按钮时,会删除对应的表格或列表项,并且重新调整其他行的新增和删除按钮的显示状态。具体的实现细节可以参考相关的前端框架或库的文档。
相关问题
写代码,第一行input框右边有新增按钮,点击新增按钮后,在他上面新增一行并且右边带删除按钮,此时最后一行有新增和删除按钮。点击最后一行删除按钮删除最后一行,此时第一行右边有新增按钮
好的,下面是一个简单的实现示例,使用 HTML、CSS 和 JavaScript 实现:
HTML 代码:
```html
<div id="container">
<div class="row">
<input type="text">
<button class="add-btn">新增</button>
</div>
</div>
```
CSS 代码:
```css
.row {
display: flex;
align-items: center;
}
input {
margin-right: 10px;
}
button {
margin-left: 10px;
}
```
JavaScript 代码:
```javascript
const container = document.getElementById("container");
const addBtns = container.querySelectorAll(".add-btn");
// 给每个新增按钮添加点击事件
addBtns.forEach((addBtn) => {
addBtn.addEventListener("click", () => {
// 在当前行上方插入新行
const newRow = document.createElement("div");
newRow.className = "row";
newRow.innerHTML = `
<input type="text">
<button class="delete-btn">删除</button>
<button class="add-btn">新增</button>
`;
container.insertBefore(newRow, addBtn.parentNode);
// 给新行的删除按钮添加点击事件
const deleteBtn = newRow.querySelector(".delete-btn");
deleteBtn.addEventListener("click", () => {
// 删除当前行
container.removeChild(newRow);
// 如果只剩下第一行,隐藏删除按钮
if (container.children.length === 1) {
const deleteBtn = container.querySelector(".delete-btn");
deleteBtn.style.display = "none";
}
});
// 如果当前行是最后一行,给当前行的新增按钮隐藏
if (addBtn === addBtns[addBtns.length - 1]) {
addBtn.style.display = "none";
}
});
});
```
这段代码实现了在第一行的右侧添加一个新增按钮,点击新增按钮后,在第一行的上方插入一行新的输入框和两个按钮,新行的右侧分别有一个删除按钮和一个新增按钮。如果当前行是最后一行,则隐藏当前行的新增按钮。如果删除了最后一行,第一行的右侧将重新显示新增按钮。
写代码,第一行是单行input框右边有新增按钮,连续点击新增按钮后,在他上面可以连续新增一行并且右边只有删除按钮,当是最后一行时有新增和删除按钮。当是第一行只有新增按钮,点击删除按钮删除当前一行
好的,根据您的要求,我给您提供一个示例代码。这个示例代码使用了HTML、CSS和JavaScript,可以实现您所需要的功能。以下是代码:
HTML部分:
```
<div id="container">
<div class="input-row">
<input type="text" class="input-box">
<button class="add-btn">新增</button>
</div>
</div>
```
CSS部分:
```
.input-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
}
.input-box {
flex: 1;
margin-right: 10px;
}
.add-btn {
width: 60px;
}
.del-btn {
width: 60px;
}
```
JavaScript部分:
```
var container = document.getElementById("container");
var addBtns = container.getElementsByClassName("add-btn");
for (var i = 0; i < addBtns.length; i++) {
addBtns[i].addEventListener("click", function() {
var newRow = document.createElement("div");
newRow.className = "input-row";
var newInput = document.createElement("input");
newInput.type = "text";
newInput.className = "input-box";
var newAddBtn = document.createElement("button");
newAddBtn.className = "add-btn";
newAddBtn.innerText = "新增";
var newDelBtn = document.createElement("button");
newDelBtn.className = "del-btn";
newDelBtn.innerText = "删除";
newRow.appendChild(newInput);
newRow.appendChild(newDelBtn);
if (this.parentNode.nextSibling) {
container.insertBefore(newRow, this.parentNode.nextSibling);
} else {
container.appendChild(newRow);
}
this.parentNode.removeChild(this);
newRow.appendChild(newAddBtn);
newDelBtn.addEventListener("click", function() {
container.removeChild(newRow);
if (container.children.length == 1) {
container.children[0].appendChild(addBtns[0]);
}
});
newAddBtn.addEventListener("click", function() {
newRow.removeChild(newAddBtn);
newRow.appendChild(newInput);
newRow.appendChild(newDelBtn);
var addBtn = document.createElement("button");
addBtn.className = "add-btn";
addBtn.innerText = "新增";
newRow.appendChild(addBtn);
addBtn.addEventListener("click", function() {
var nextRow = document.createElement("div");
nextRow.className = "input-row";
var nextInput = document.createElement("input");
nextInput.type = "text";
nextInput.className = "input-box";
var nextAddBtn = document.createElement("button");
nextAddBtn.className = "add-btn";
nextAddBtn.innerText = "新增";
var nextDelBtn = document.createElement("button");
nextDelBtn.className = "del-btn";
nextDelBtn.innerText = "删除";
nextRow.appendChild(nextInput);
nextRow.appendChild(nextDelBtn);
container.insertBefore(nextRow, newRow.nextSibling);
newRow.removeChild(addBtn);
nextRow.appendChild(nextAddBtn);
nextDelBtn.addEventListener("click", function() {
container.removeChild(nextRow);
if (container.children.length == 1) {
container.children[0].appendChild(addBtns[0]);
}
});
nextAddBtn.addEventListener("click", function() {
nextRow.removeChild(nextAddBtn);
nextRow.appendChild(nextInput);
nextRow.appendChild(nextDelBtn);
var addBtn = document.createElement("button");
addBtn.className = "add-btn";
addBtn.innerText = "新增";
nextRow.appendChild(addBtn);
addBtn.addEventListener("click", function() {
var nextNextRow = document.createElement("div");
nextNextRow.className = "input-row";
var nextNextInput = document.createElement("input");
nextNextInput.type = "text";
nextNextInput.className = "input-box";
var nextNextAddBtn = document.createElement("button");
nextNextAddBtn.className = "add-btn";
nextNextAddBtn.innerText = "新增";
var nextNextDelBtn = document.createElement("button");
nextNextDelBtn.className = "del-btn";
nextNextDelBtn.innerText = "删除";
nextNextRow.appendChild(nextNextInput);
nextNextRow.appendChild(nextNextDelBtn);
container.insertBefore(nextNextRow, nextRow.nextSibling);
nextRow.removeChild(addBtn);
nextNextRow.appendChild(nextNextAddBtn);
nextNextDelBtn.addEventListener("click", function() {
container.removeChild(nextNextRow);
if (container.children.length == 1) {
container.children[0].appendChild(addBtns[0]);
}
});
nextNextAddBtn.addEventListener("click", function() {
nextNextRow.removeChild(nextNextAddBtn);
nextNextRow.appendChild(nextNextInput);
nextNextRow.appendChild(nextNextDelBtn);
var addBtn = document.createElement("button");
addBtn.className = "add-btn";
addBtn.innerText = "新增";
nextNextRow.appendChild(addBtn);
addBtn.addEventListener("click", function() {
alert("已到达最大行数");
});
});
});
});
});
});
});
}
var delBtns = container.getElementsByClassName("del-btn");
for (var i = 0; i < delBtns.length; i++) {
delBtns[i].addEventListener("click", function() {
container.removeChild(this.parentNode);
if (container.children.length == 1) {
container.children[0].appendChild(addBtns[0]);
}
});
}
```
这个代码会动态地生成表格,并且可以动态地添加和删除行。第一行只有一个新增按钮,点击新增按钮会在下面添加一行,并且这一行只有一个删除按钮。最后一行不仅有新增按钮,还有删除按钮。如果删除的是最后一行,那么会在上一行的右边添加一个新增按钮。