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

时间:2014-05-22 16:37:50

标签: javascript jquery ajax

AJAX响应:

<div id="div_1">Some text</div>
<div id="div_2">Some text</div>
<div id="div_3">Some text</div>

现在我需要删除一些divse,然后才会向用户显示结果。我们举个例子,删除div_1和div_3:

var result = $(ajax_response).find('#div_1, #div_3').remove();

现在我们可以向用户展示:

$('#result_div').html(result);

但它不起作用 - 什么都不会出现。我做错了什么?

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

 $('#result_div').html(ajax_response).find('#div_1, #div_3').remove();

1 个答案:

答案 0 :(得分:5)

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>

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

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

Example fiddle