我正在尝试学习以前在jQuery中使用普通JavaScript所做的事情。
我有我在互联网上找到的要解决的示例,这确实给了我很多麻烦。
我正在尝试div.single点击删除父对象button.remove。
这是代码;
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);
}Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
我出错了e.parentNode is undefined。
这是执行相同操作的jQuery代码。
$(document).ready(function() {
$(document).on('click', '.remove', function () {
$(this).parent('.single').remove()
})
})
Run Code Online (Sandbox Code Playgroud)
感谢您的任何答案。
Tar*_*aji 14
以快捷方式删除父节点:
<div class="single">
<img src="http://via.placeholder.com/150x150">
<button type="button" onclick="return this.parentNode.remove();" class="remove">X</button>
</div>Run Code Online (Sandbox Code Playgroud)
您需要从事件对象(currentTarget / target)中获取元素引用
注意:所有现代浏览器都支持Node.remove()
var btn = document.getElementsByClassName('remove')
for (var i = 0; i < btn.length; i++) {
btn[i].addEventListener('click', function(e) {
e.currentTarget.parentNode.remove();
//this.closest('.single').remove() // in modern browsers in complex dom structure
//this.parentNode.remove(); //this refers to the current target element
//e.target.parentNode.parentNode.removeChild(e.target.parentNode);
}, false);
}Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)