有沒有辦法重新加載AJAX請求,以便更新下面代碼中從外部網站提取的內容?通過鏈接重新發送AJAX請求?
$(document).ready(function() {
var mySearch = $('input#id_search').quicksearch('#content table', { clearSearch: '#clearsearch', });
var container = $('#content');
function doAjax(url) {
if (url.match('^http')) {
$.getJSON("http://query.yahooapis.com/v1/public/yql?"+
"q=select%20*%20from%20html%20where%20url%3D%22"+
encodeURIComponent(url)+
"%22&format=xml'&callback=?",
function (data) {
if (data.results[0]) {
var fullResponse = $(filterData(data.results[0])),
justTable = fullResponse.find("table");
container.append(justTable);
mySearch.cache();
$('.loading').fadeOut();
} else {
var errormsg = '<p>Error: could not load the page.</p>';
container.html(errormsg);
}
});
} else {
$('#content').load(url);
}
}
function filterData(data) {
data = data.replace(/<?\/body[^>]*>/g, '');
data = data.replace(/[\r|\n]+/g, '');
data = data.replace(/<--[\S\s]*?-->/g, '');
data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g, '');
data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g, '');
data = data.replace(/<script.*\/>/, '');
data = data.replace(/<img[^>]*>/g, '');
return data;
}
doAjax('link');
});
現在我有一個按鈕來重新加載整個頁面,但我只是想重新加載AJAX請求。這甚至有可能嗎?
編輯:我需要指定更多。雖然它可以輕鬆地再次調用AJAX,它是否也可以替換已存在的信息?
有什麼辦法可以代替已經存在的信息嗎?對不起,我應該在操作中指定更多。 – Charlie 2012-01-12 20:34:05
而不是container.append(justTable)做container.html(justTable) - 它將替換任何現有的數據。 – Archer 2012-01-12 20:36:23
注意:'.on()'在jQuery 1.7中是新的,在這種情況下與'.bind()'是一樣的。 http://api.jquery.com/on – Jasper 2012-01-12 21:10:36