0

所以..这个应该很简单。我有一个锚元素。当它被点击时,我想调用一个函数来删除它的父元素。本质上,它是删除父级的链接。

我将如何做到这一点?我尝试使用以下方法,但不起作用:

<div>
     <a href='javascript:removeParent()'>Remove</a>
</div>
<script>
function removeParent() {
     $( this ).parent().remove()
}
</script>

谁能帮我吗?

我正在尝试完成此操作,因为它是一个可以具有多个属性的表单......所以您可以添加更多属性,因此需要一种方法来删除它们。

干杯!

4

2 回答 2

3

$(this) 不是你这样做的元素。

理想情况下,这是:

<a href='#' class='remove'>Remove</a>

$('.remove').on('click', function(e){
    e.preventDefault();
    $(this).parent().remove();
});

但是,这部分问题“因此您可以添加更多属性,因此需要一种删除它们的方法。 ”意味着您需要将其应用于将来的元素

$(document).on('click', '.remove', function(e){
    e.preventDefault();
    $(this).parent().remove();
});

尽管在理想情况下,您应该让 jQuery 搜索的次数更少,所以给您的列表包装器一个 ID 并使用它来识别可移动元素。

$('#attributelist').on('click', '.remove', function(e){
    e.preventDefault();
    $(this).parent().remove();
});
于 2013-02-03T01:30:34.393 回答
0

如果您在 onload 后动态创建元素,则需要修改 popnoodle 的代码以使用容器:

$('#container').on('click', '.remove', function(e) {...

这假定该类的所有元素remove都在 element 中container。它创建一个事件处理程序,该处理程序container将应用于类的任何元素remove,即使它们是在附加处理程序之后创建的。

于 2013-02-03T01:42:18.043 回答