Javascript jQuery,remove不是删除子元素,而是删除父元素
我有一个函数,在单击事件时将元素附加到主体。然后,还有一个应该在单击之前附加的元素之一时删除这些元素的元素 当我单击.closeBigPic时,该元素按预期被删除,但是.bigPicWrapper div被删除,.bigPic元素保留在后面Javascript jQuery,remove不是删除子元素,而是删除父元素,javascript,jquery,Javascript,Jquery,我有一个函数,在单击事件时将元素附加到主体。然后,还有一个应该在单击之前附加的元素之一时删除这些元素的元素 当我单击.closeBigPic时,该元素按预期被删除,但是.bigPicWrapper div被删除,.bigPic元素保留在后面 $(document).on('click', '.user-profile .avatar_section', function() { var thumbUrl = $(this).find('.avatar_profile').attr('sr
$(document).on('click', '.user-profile .avatar_section', function() {
var thumbUrl = $(this).find('.avatar_profile').attr('src');
var origUrl = thumbUrl.replace('thumb', 'medium');
console.log(origUrl);
$('body').append('<div class="closeBigPic"></div><div class="bigPicWrapper"><img class="bigPic" src="' + origUrl + '" /></div>')
});
$(document).on('click', '.closeBigPic', function() {
$(this, '.bigPicWrapper').remove();
});
不应该。同时删除子元素
更新:
当我将第二次单击事件更改为:
$(document).on('click', '.closeBigPic', function() {
$(this).remove();
$('.bigPicWrapper').remove();
});
它完全按照预期工作。那里发生了什么事?我想这和这件事有关
这是说使用.bigPicWrapper作为上下文。有点像
$('.foo, .bar').remove();
只是充当css选择器。我不认为以下内容与您所认为的一样:
$(this, '.bigPicWrapper')
从:
“.bigPicWrapper”看起来不是有效的上下文。是的,你完全正确!我甚至没有注意到我在做什么。这很有趣。谢谢
$('.foo, .bar').remove();
$(this, '.bigPicWrapper')
jQuery( selector [, context ] )