javascript - 单击时删除元素

标签 javascript jquery html

我试图简单地删除最近的 li。

如果我简单地这样做就可以了:<li><a id="delete-hello">Teste</a></li>

控制台中没有错误。 问题是我的 li生成后用户会执行某些操作(在本例中是单击按钮时) 因此,该方法永远不会被触发,并且 li 永远不会消失。

我的怎么了$("a[id^='delete-']").click(function()生成li后可以运行吗?

$(document).ready(function() {

  //delete testCase row when click delete button
  $("a[id^='delete-']").click(function() {
    console.log('clicked');
    $(this).closest('li').remove();
  });

  var table = $('#dataTable').DataTable({
    buttons: [{
      text: 'Add test case(s)',
      action: function() {
        var testCaseName;
        var data = table.rows({
          selected: true
        }).data();
        console.log(data);
        $.each(data, function(index, value) {
          console.log(value[1]);
          testCaseName = value[1];
          $('#testCaseList').append('<li class="list-group-item justify-content-between">' + testCaseName + '<a class="action-icon" id="delete-' + testCaseName + '" name="' + testCaseName + '"><span class="fa fa-trash"></span></button></li>')
        });
      }
    }]
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">


<ul id="testCaseList" class="list-group"></ul>

最佳答案

Delegated events have the advantage that they can process events from descendant elements that are added to the document at a later time.

由于您的元素是动态添加到 DOM 中的,因此您需要使用事件委托(delegate) on() 相反:

$("body").on('click', "a[id^='delete-']", function() {
    console.log('clicked');
    $(this).closest('li').remove();
});

关于javascript - 单击时删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48099658/

相关文章:

javascript - JQuery:如何将函数应用于哈希值?

javascript - Sequelize where语句外表

javascript - 使用 css 自定义 bot 框架直线 API

javascript - 优化.click(某些函数)jquery代码

javascript - 加载 DOM 后立即在具有特定类的元素上运行函数,而不是使用事件处理程序

javascript - 如何卡住可滚动 div 中 html 表格的第一列和最后一列?

javascript - 尝试设置 openlayers3 的样式

javascript - 单击链接时关闭 Canvas 外移动菜单(JS)

php - 使用 php 向 mysql 表添加多个值

Javascript 会自动设置元素的字体大小以使文本不会溢出? (自动调整)