ajax数据过滤不起作用

时间:2015-01-05 20:48:38

标签: javascript jquery html ajax

我试图从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>";

2 个答案:

答案 0 :(得分:1)

您似乎只是将数据内容分配给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。

答案 1 :(得分:0)

尝试使用返回带有两个返回值的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>"));