创建“删除div”链接

时间:2015-03-19 10:51:32

标签: javascript jquery

使用此代码,我可以在div中添加带有一些文本和超链接的div:

$('<div/>')
    .html("<a href='#'>x</a> " + i.item.label + " - ")
    .attr({ 'id': i.item.val })
    .addClass('boxClass')
    .appendTo('#acResults');

当我点击创建的div中的x链接时,我想删除创建的链接。类似于本网站标签部分中的删除标签的内容。

你能帮我吗?

3 个答案:

答案 0 :(得分:2)

因为动态附加了元素,所以需要使用委托的事件处理程序。在那里,您可以使用closest()查找父div并将其删除。试试这个:

$('#acResults').on('click', '.boxClass a', function(e) {
    e.preventDefault();
    $(this).closest('.boxClass').remove();
});

答案 1 :(得分:1)

您可以执行此操作:使用.on()添加点击事件(我们为动态创建的元素执行此操作)并使用.remove()删除点击的链接。

$(document).on('click','div.boxClass a',function(){
    $(this).remove();
});

编辑 - 正如OP提到的“我想在帖子中点击创建的div中的x链接时删除创建的链接”,但看起来OP想删除{ {1}}而不是链接。请在下面找到更新的答案 -

div

答案 2 :(得分:0)

在此链接中添加一些课程

$('<div/>')
  .html("<a class='remove-link' href='#'>x</a> " + i.item.label + " - ")
  .attr({'id': i.item.val})
  .addClass('boxClass')
  .appendTo('#acResults');

然后尝试

$('.remove-link').click(function (event) {
   event.preventDefault();
   $(this).remove();
});