我是新学习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>';
?>
答案 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]方法。