jQuery-从AJAX响应中删除一些元素

Kor*_* M. 2 javascript ajax jquery

AJAX回应:

<div id="div_1">Some text</div>
<div id="div_2">Some text</div>
<div id="div_3">Some text</div>
Run Code Online (Sandbox Code Playgroud)

现在,在将结果显示给用户之前,我需要删除一些divse。因此,例如删除div_1和div_3:

var result = $(ajax_response).find('#div_1, #div_3').remove();
Run Code Online (Sandbox Code Playgroud)

现在我们可以向用户显示它:

$('#result_div').html(result);
Run Code Online (Sandbox Code Playgroud)

但这没用-什么都不会出现。我究竟做错了什么?

编辑:有效的解决方案,但我不喜欢,我必须在更改之前显示结果:

 $('#result_div').html(ajax_response).find('#div_1, #div_3').remove();
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 7

find()仅在元素的上下文中起作用。您收到的三个元素都是同级,因此您可以将它们包装在服务器端的容器中:

<div class="container">
    <div id="div_1">Some text</div>
    <div id="div_2">Some text</div>
    <div id="div_3">Some text</div>
</div>
Run Code Online (Sandbox Code Playgroud)

或者,您可以在JS中以编程方式执行此操作:

var $container = $(ajax_response).wrap('<div />').parent();
$container.find('#div_1, #div_3').remove();
$('#result_div').html($container);
Run Code Online (Sandbox Code Playgroud)

小提琴的例子