使用普通 Java 脚本单击旁边的按钮后如何删除每个项目
How would I remove each Item after clicking the button next to it using plain Java script
下面是html代码
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>
Below is JS code
var ul=document.querySelector("ul");
var li= document.querySelector("li");
var button= document.querySelectorAll(".btn");
button.forEach(function(i){
i.onclick=function(){
ul.removeChild(li);
}
})
并且上面的代码只删除了第一项。我真的不知道如何实现这一点。对 html 集合和节点列表的概念真的很困惑。
在处理程序中,select 按钮的 parentElement
和 remove()
它:
var button = document.querySelectorAll(".btn");
button.forEach(function(button) {
button.onclick = function() {
button.parentElement.remove();
}
})
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>
如果需要,您也可以改用事件委托,而不是添加多个侦听器:
document.querySelector('ul').addEventListener('click', ({ target }) => {
if (target.className === 'btn') {
target.parentElement.remove();
}
});
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>
您可以获取按钮并向其添加事件,在 click
上它将找到其父级并将其删除
document.querySelectorAll(".btn").forEach(function(i) {
i.addEventListener('click', function() {
this.parentNode.remove()
})
})
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>
仅删除下一个元素。与
this.parentElement.nextElementSibling.remove()
或
else 使用相同的元素删除使用 this.parentElement.remove()
var ul = document.querySelector("ul");
var li = document.querySelector("li");
var button = document.querySelectorAll(".btn");
button.forEach(function(i) {
i.addEventListener('click',function() {
this.parentElement.nextElementSibling.remove();
})
})
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>
下面是html代码
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>
Below is JS code
var ul=document.querySelector("ul");
var li= document.querySelector("li");
var button= document.querySelectorAll(".btn");
button.forEach(function(i){
i.onclick=function(){
ul.removeChild(li);
}
})
并且上面的代码只删除了第一项。我真的不知道如何实现这一点。对 html 集合和节点列表的概念真的很困惑。
在处理程序中,select 按钮的 parentElement
和 remove()
它:
var button = document.querySelectorAll(".btn");
button.forEach(function(button) {
button.onclick = function() {
button.parentElement.remove();
}
})
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>
如果需要,您也可以改用事件委托,而不是添加多个侦听器:
document.querySelector('ul').addEventListener('click', ({ target }) => {
if (target.className === 'btn') {
target.parentElement.remove();
}
});
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>
您可以获取按钮并向其添加事件,在 click
上它将找到其父级并将其删除
document.querySelectorAll(".btn").forEach(function(i) {
i.addEventListener('click', function() {
this.parentNode.remove()
})
})
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>
仅删除下一个元素。与
this.parentElement.nextElementSibling.remove()
或
else 使用相同的元素删除使用 this.parentElement.remove()
var ul = document.querySelector("ul");
var li = document.querySelector("li");
var button = document.querySelectorAll(".btn");
button.forEach(function(i) {
i.addEventListener('click',function() {
this.parentElement.nextElementSibling.remove();
})
})
<ul>
<li>Item 1<button class="btn">click</button></li>
<li>Item 2<button class="btn">click</button></li>
<li>Item 3<button class="btn">click</button></li>
<li>Item 4<button class="btn">click</button></li>
<li>Item 5<button class="btn">click</button></li>
</ul>