jQuery.ajax如何从另一个页面的div接收数据

时间:2011-03-05 15:24:37

标签: jquery ajax

我是新学习jquery.ajax。我还有一些问题。如何从另一个页面的div接收数据?我尝试这样做:打开a.php,从div#send发送html数据到b.php,然后从b.php div#aa返回数据并在a.php div#result中显示,来自b.php div#bb并显示在a.php div#text中。感谢。

a.php只会

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script> 
<script language="javascript"> 
$(document).ready(function () {      
var params = "value=" + $('#send').text();   
$.ajax({        
     url:'b.php',        
     type:'post',                 
     dataType:'html',            
     data:params,            
     success:data     
     }); 
function data (html) {   
$("#result").html('#aa'); 
$("#text").html('#bb'); 
} 
}); 
</script>
<body>
<div id="result"></div>// I need return 'this is an apple.'
<div id="text"></div>//I need return 'A red apple'.
<div id="send">apple</div>

b.php

<?php
echo '<div id="aa">';
echo 'This is an '.$_REQUEST['value'].'.'; 
echo '</div>';
echo '<div id="bb">';
echo 'A red '.$_REQUEST['value'].'.'; 
echo '</div>';
?>

1 个答案:

答案 0 :(得分:1)

您需要将响应字符串转换为DOM元素,选择这些元素,然后将它们附加到您想要的位置。

function data (html) {
    var $html = $( html );             // create DOM elements in a jQuery object

    $html.filter('#aa').appendTo("#result"); // filter out the '#aa' element and
                                             //    append it to '#result'

    $html.filter('#bb').appendTo("#text");   // filter out the '#bb' element and
                                             //    append it to '#text'
}

我使用了filter()[docs]方法,因为您定位的元素似乎位于HTML响应的顶层。

如果它们嵌套得更深,则可以使用find()[docs]方法。