AJAX 数据过滤不起作用

ajax data filtering not working

本文关键字:不起作用 过滤 数据 AJAX      更新时间:2023-09-26

>我试图从ajax响应中获取div的内容,但它返回的内容与另一个div而不是那个特定的div相同。

$.ajax({
url:'test',
type:'POST',
data:{id:id},
cache:false,
success: function(data){
  $('#resp_top').html(data).find('#top');// this one works
  $('#resp_bot').html(data).find('#bottom');// this returns the same content as the above
  //$('#resp_bot').html($(data).filter('#bottom')); I have also tried this but doesn't work
}
})

.php

...   
echo "<div id='top'>".$top_content."</div>";
echo "<div id='bottom'>".$bottom_content."</div>";

看起来您只是将数据的内容分配给div,而没有对其进行任何数据清理或过滤。

$('#resp_top').html(data).find('#top')

将数据对象添加到resp_top ID 的 HTML 中。

$('#resp_bot').html(data).find('#bottom');

将 SAME 数据对象添加到resp_bot ID 的 HTML 中。

查找不是在执行任何 DOM 操作,而只是查找元素而不对其进行任何操作。

最好先处理数据,然后分配数据:

$('#resp_top').html($(data).find('#top'));
$('#resp_bot').html($(data).find('#bottom'));

这假定顶部/底部作为 ID 在数据对象中。

尝试使用返回具有两个返回值的 JSON 数组:

JavaScript:

$.ajax({
url:'test',
type:'POST',
data:{id:id},
dataType:'json',
cache:false,
success: function(data){
  $('#resp_top').html(data[0]).find('#top');
  $('#resp_bot').html(data[1]).find('#bottom');
}
})

.PHP:

echo "<div id='top'>".$top_content."</div>";
echo "<div id='bottom'>".$bottom_content."</div>";
echo json_encode(array("<div id='top'>".$top_content."</div>", "<div id='bottom'>".$bottom_content."</div>"));