Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery,remove不是删除子元素,而是删除父元素_Javascript_Jquery - Fatal编程技术网

Javascript jQuery,remove不是删除子元素,而是删除父元素

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

我有一个函数,在单击事件时将元素附加到主体。然后,还有一个应该在单击之前附加的元素之一时删除这些元素的元素

当我单击.closeBigPic时,该元素按预期被删除,但是.bigPicWrapper div被删除,.bigPic元素保留在后面

$(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 ] )