javascript - 删除选定的 div

标签 javascript dom

脚本解释:我有一个文本区域,用户正在输入注释,这些注释被添加到 DOM(作为 div 元素)。我在该 div 中创建了一个图标,当您单击它时,我希望被单击的图标的父级从 DOM 中删除。我用 JQuery 实现了这一点,但我不能用纯 JS 来实现。我用来实现此目的的代码:

$('.fa-window-close').on('click', function(event){
                event.preventDefault();
                console.log($(this).parents('div')[0]);
                $(this).parents('div')[0].remove();

           });

我发布了一个来自 gist 的链接,它是我项目的一部分代码,因此您可以了解我想要实现的目标。

https://gist.github.com/Clickys/43856fe26ee4c061cf910a9211f0c142

基本上我想要实现的是,假设我们有一个在 DOM 中创建 div 元素的按钮。每个 div 都有一个图标(fontawesome),如果我们单击它,则应从 DOM(目标 div)中删除所选目标,但不会从其他 div 中删除。我尝试使用 event.target 和很多东西,但遗憾的是我无法用纯 JS 解决这个问题。

我试过了

closeTolPos.addEventListener('click', function(e){
      var parentEl = e.currentTarget.parentNode.parentNode;
      parentEl.removeChild(this.parentElement);
      console.log(this.parentElement);
});

但似乎当有超过 1 个元素时,它不起作用。它仅在存在一个元素时有效。

最佳答案

我们做了一些更改,现在代码可以运行了:

 (function() {
    document.addEventListener('click',function(e) {
      if (e.target.closest('.notesDecoration')) {
        e.target.closest('.notesDecoration').parentNode.removeChild(e.target.parentNode);
      }
    });     
 })();

现在 click 事件被绑定(bind)到文档,所以当页面加载时元素存在。然后我检查点击的元素是否是最近创建并添加到 DOM 的元素。

关于javascript - 删除选定的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43170754/

相关文章:

javascript - 检查单选按钮选项失败

PHP 和 XML : The cost of parsing a large XML file every page request

javascript - 在 JavaScript 中使用 HTML 表格时,这种方法正确吗?

javascript - DOM 事件不会在 off-DOM 元素中冒泡

javascript - 如何将 Django 模板中的内容替换为其他内容?

javascript - react 上下文奇怪的数据类型错误

javascript COMET 请求 onunload

javascript - 如何在 HTML 中对同一个 div 进行多个不同的 AJAX 调用

javascript - ReactJS:用于多个表单输入的单个 onChange 处理程序

javascript - 添加事件监听器的最佳实践(javascript、html)