以下是我创建的演示link。
在该链接中,"删除父级"工作中。但是,"删除孩子"功能不起作用。
以下是我使用的代码:
$('.dec-child').on('click', function(){
$(this.parent('.child:last').remove());
})
答案 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();
})
如果您使用parent()
,则会获得<div class="parent">
,因此您需要在此div元素中找到类.child
,您可以这样做
$(document).on('click', '.dec-child', function() {
$(this).parent().find('.child:last').remove();
})
答案 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/