javascript - jquery click事件没有删除父元素

标签 javascript jquery html

<分区>

我试图在单击按钮后删除按钮的父元素,它是一个列表元素。

编程世界的新手,所以它可能很简单,但我无法根据我在堆栈溢出和互联网上发布的其他人的发现找到解决方案。请有人指出我做错了什么?

我正在结合使用 Javascript 和 Jquery。我正在尝试利用我已经知道的技能加上一些研究来完成工作。我正在学习使用纯 Javascript 进行类似删除事件所需的技术和技能,但现在我只是在这方面使用 Jquery。

$(document).ready(function() {

  document.getElementById("add").addEventListener("click", function() {

    var taskinput = document.getElementById("task").value;

    if (taskinput) {

      var tasktext = document.createTextNode(taskinput);
      var list = document.createElement("li");
      list.appendChild(tasktext);
      var button = document.createElement("button");
      button.setAttribute("class", "completed");
      button.innerHTML = "X";
      list.appendChild(button);
      document.getElementById("task-to-do").appendChild(list);
      document.getElementById("task").value = " ";
    } else {
      alert("Please enter a task");
    }

  });

  $("button .completed").click(function() {
    $(this).closest("li").remove();;
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="container">

  <header>
    <h1>ENTER A TASK BELOW</h1>
    <input type="text" id="task"><img id="add" src="add.png">
  </header>

  <div id="incomplete-tasks">
    <h4>TO-DO LIST</h4>
    <ul id="task-to-do">

    </ul>

  </div>

最佳答案

item是动态添加的,需要在静态item(比如文档)上绑定(bind)事件

所以把函数改成

$(document).on('click', "button.completed", function(){
   $(this).closest("li").remove();
});

(另请注意,button.completed 之间的空格已删除)。

关于javascript - jquery click事件没有删除父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46468331/

相关文章:

javascript - 将 POST 请求数据 JSON 路由到 View / Controller (node.js)

javascript - 如何在不使用 eval() 的情况下以 Base62 编码压缩 JavaScript 代码?

javascript - 编译/组合 Jquery 文件以提高性能

php - html 正在通过 ajax/javascript 进程进行改革

javascript - 当主列 float 在侧边栏旁边时,将 Bootstrap Popover 置于按钮下方

javascript - 无法通过按外部 div 来关闭 div

html - 在 CSS 中倾斜多行

javascript - 更改特定表格单元格内容背景的问题

javascript - 在 TypeScript 中使用三个 Js + OrbitControl

javascript - 如何使用 jQuery Knob 创建计数器时钟?