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