道歉不是原先具有可重现测试案例 - 我现在已经做一个对CodePen: - https://codepen.io/cssgrid/pen/971328c046d97ffd24decafa20804d3b/事件冒泡和“这个”古怪
我有一大堆的产品。当有人点击每个产品div内的删除按钮时,我想从DOM中删除该产品。 我的问题是:在列表中的最后一个产品已经被删除,而不是在它的按钮,用户实际点击:(
<div class="product">
//some code
<button class="remove-btn">Remove</button>
</div><!-- end of product div -->
var products = document.querySelectorAll(".product");
for (let i = 0; i < products.length; i++) {
products[i].addEventListener("click", function(e) {
if (e.target.classList.contains("remove-btn")) {
this.remove();
}
})
}
jQuery中也尝试了产品:
$(".remove-btn").on("click", function() {
$(this).closest(".product").remove();
})
尝试提供[MCVE],被删除您的代码不演示的最后一个项目,因为只有一个项目。尝试制作[现场演示](https://stackoverflow.blog/2014/09/introducing-runnable-javascript-css-and-html-code-snippets/)。 – Quentin
我不能重现该问题:http://jsbin.com/gaqabo/1/edit?html,output – Quentin
如果您单击''''并创建一个[mcve]您的代码工作 - 可能是因为SO包装代码在onload。你应该如何 – mplungjan