我有一个像这样的Ajax代码:
$j(document).ready(function () {
function loading_show() {
$j('#loading').html("<img src='images/loading.gif'/>").fadeIn('fast');
}
function loading_hide() {
$j('#loading').fadeOut();
}
function loadData(page) {
loading_show();
$j.ajax({
type: "POST",
url: "load_data.php",
data: "page=" + page,
success: function (msg) {
var $response = $j(msg);
// Query the jQuery object for the values
oGlobal = $response.filter('#Z').text();
$j("#container").ajaxComplete(function(event, request, settings) {
loading_hide();
$j("#container").html(msg);
});
}
});
}
loadData(1); // For first time page load default results
$j('#container .pagination li.active').live('click', function () {
var page = $j(this).attr('p');
loadData(page);
});
});
我得到了这样的答复:
<div id="container">
<div id="Z">JuanFernando</div>
<div id="q">
<div class="pagination">
<ul>
<li p="1" class="inactive">First</li>
<li class="inactive">Previous</li>
<li p="1" style="color:#fff;background-color:#006699;" class="active">1</li>
<li p="2" class="active">2</li>
<li p="2" class="active">Next</li>
<li p="2" class="active">Last</li>
</ul>
<input class="goto" size="1" style="margin-top:-1px;margin-left:60px;"
type="text">
<input id="go_btn" class="go_button" value="Go" type="button"><span class="total" a="2">Page <b>1</b> of <b>2</b></span>
</div>
</div>
</div>
我想提取&#34; JuanFernando&#34;为了在div容器中显示,但我希望其余的响应可以显示在其他不同的div中,例如:container2。
答案 0 :(得分:0)
ajaxComplete不是你想要在这里使用的,特别是在你的成功函数中。您希望您的成功函数看起来像这样:
success: function (msg) {
loading_hide();
var $response = $j(msg);
// Query the jQuery object for the values
oGlobal = $response.find('#Z').text();
$j("#container").html(oGlobal);
$response.find('#Z').remove();
$j('<div id="container2"></div>').html($response.html()).appendTo('body');
}
我们只是采用oGlobal
(在这种情况下应该是JuanFernando)并将其粘贴在#container
中。之后,从响应中移除#Z
div,并将其余部分放在新的#container2
内,并将其附加到正文或任何您喜欢的地方。
答案 1 :(得分:0)
基本上唯一随代码而变化的是
替换
oGlobal = $response.filter('#Z').text();
与
oGlobal = $response.find('#Z').text();
另见MattDiamant关于ajaxComplete
的答案。