我正试图学习在纯JavaScript中完成我以前在jQuery中完成的任务。
我发现了一个例子来解决我的问题,但这真的让我很困扰。
我正在尝试点击button.remove
时删除父级div.single
。
以下是代码:
var btn = document.getElementsByClassName('remove')
for (var i = 0; i < btn.length; i++) {
btn[i].addEventListener('click',function (e) {
e.parentNode.parentNode.removeChild(e.parentNode);
} , false);
}
<div class="single">
<img src="http://via.placeholder.com/150x150">
<button type="button" class="remove">X1</button>
</div>
<div class="single">
<img src="http://via.placeholder.com/150x150">
<button type="button" class="remove">X2</button>
</div>
<div class="single">
<img src="http://via.placeholder.com/150x150">
<button type="button" class="remove">X3</button>
</div>
<div class="single">
<img src="http://via.placeholder.com/150x150">
<button type="button" class="remove">X4</button>
</div>
我遇到了错误e.parentNode is undefined
。
这是我需要的相同功能的jQuery代码。
$(document).ready(function() {
$(document).on('click', '.remove', function () {
$(this).parent('.single').remove()
})
})
感谢任何回答。
e.target.parentNode
。e
对象是事件对象,而不是节点。它的target
属性引用了节点。 - trincot