使用。删除功能。这不起作用

时间:2015-04-07 11:41:32

标签: javascript

以下是我创建的演示link

在该链接中,"删除父级"工作中。但是,"删除孩子"功能不起作用。

以下是我使用的代码:

$('.dec-child').on('click', function(){
    $(this.parent('.child:last').remove());
})

5 个答案:

答案 0 :(得分:2)

您尚未正确关闭this

应该是

$(this).parent('.child:last').remove();

选择器也错了。

关于.dec-child.child是兄弟姐妹而不是父母。

$(this).siblings('.child:last').remove();

<强> DEMO

如果要使其适用于所有动态添加的子元素,则必须使用事件委派。

$('body').on('click',".dec-child", function(){
        $(this).siblings('.child:last').remove();
  });

答案 1 :(得分:1)

我将您的代码更改为

$('.dec-child').on('click', function(){
    $(this).parent().find('.child:last').remove();
})

以上代码不适合您,请尝试此操作,您的代码将正常运行。

答案 2 :(得分:1)

您的代码不起作用,因为<div class="child"></div>不是<a href="#" class="dec-child">remove previous Child</a>的父代,在我们的情况下,您应该使用siblings,就像这样

$(document).on('click', '.dec-child', function() {
    $(this).siblings('.child:last').remove();
})

Example

如果您使用parent(),则会获得<div class="parent">,因此您需要在此div元素中找到类.child,您可以这样做

$(document).on('click', '.dec-child', function() {
    $(this).parent().find('.child:last').remove();
})

Example

答案 3 :(得分:0)

你应该用this包裹jQuery,这样它就会返回一个jQuery对象。

$('.dec-child').on('click', function(){
    $(this).parent('.child:last').remove();
});

答案 4 :(得分:0)

将您的功能更改为

$('.dec-child').on('click', function(){
        $(this).parent().parent().find('.child').last().remove();
    })

请参阅jsfiddle http://jsfiddle.net/mrvtwpjp/22/