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();
答案 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);